19 declare(strict_types=1);
53 protected \ILIAS\Data\Factory
$df;
56 protected int $id = 0;
114 $this->export_factory =
new ExportFactory();
115 $this->usr = $DIC->user();
116 $this->
ctrl = $DIC->ctrl();
117 $this->
lng = $DIC->language();
118 $this->
tabs = $DIC->tabs();
119 $this->tpl = $DIC[
"tpl"];
120 $this->
help = $DIC[
"ilHelp"];
121 $this->
toolbar = $DIC->toolbar();
122 $this->ui_fac = $DIC->ui()->factory();
123 $this->ui_ren = $DIC->ui()->renderer();
124 $this->df = new \ILIAS\Data\Factory();
125 $this->request = $DIC->http()->request();
126 $this->query = $DIC->http()->wrapper()->query();
127 $this->tree_service = $DIC->skills()->tree();
130 $this->admin_gui_request = $DIC->skills()->internal()->gui()->admin_request();
131 $this->skill_factory = $DIC->skills()->internal()->factory();
132 $this->profile_manager = $DIC->skills()->internal()->manager()->getProfileManager();
133 $this->profile_completion_manager = $DIC->skills()->internal()->manager()->getProfileCompletionManager();
134 $this->table_manager = $DIC->skills()->internal()->manager()->getTableManager();
135 $this->usage_manager = $DIC->skills()->internal()->manager()->getUsageManager();
137 $this->
ctrl->saveParameter($this, [
"sprof_id",
"local_context"]);
139 $this->requested_ref_id = $this->admin_gui_request->getRefId();
140 $this->requested_sprof_id = $this->admin_gui_request->getSkillProfileId();
141 $this->requested_profile_ids = $this->admin_gui_request->getProfileIds();
142 $this->requested_local_context = $this->admin_gui_request->getLocalContext();
143 $this->requested_cskill_id = $this->admin_gui_request->getCombinedSkillId();
144 $this->requested_level_ass_ids = $this->admin_gui_request->getAssignedLevelIds();
145 $this->requested_level_order = $this->admin_gui_request->getOrder();
146 $this->requested_user_login = $this->admin_gui_request->getUserLogin();
147 $this->requested_users = $this->admin_gui_request->getUsers();
148 $this->requested_user_ids = $this->admin_gui_request->getUserIds();
149 $this->requested_table_profile_action = $this->admin_gui_request->getTableProfileAction();
150 $this->requested_table_profile_ids = $this->admin_gui_request->getTableProfileIds();
151 $this->requested_level_id = $this->admin_gui_request->getLevelId();
153 if ($this->requested_sprof_id > 0) {
158 $this->
profile = $this->profile_manager->getProfile($this->
id);
159 if ($this->skill_tree_id == 0) {
160 $this->skill_tree_id = $this->
profile->getSkillTreeId();
163 $this->local_context =
true;
173 $cmd = $ilCtrl->getCmd(
"listProfiles");
174 $next_class = $ilCtrl->getNextClass();
175 switch ($next_class) {
176 case 'ilrepositorysearchgui':
178 $user_search->setTitle($lng->
txt(
'skmg_add_user_to_profile'));
179 $user_search->setCallback($this,
'assignUser');
180 $user_search->setRoleCallback($this,
'assignRole');
184 $ilCtrl->setReturn($this,
'showUsers');
185 $ret = $ilCtrl->forwardCommand($user_search);
189 if (in_array($cmd, array(
"listProfiles",
"create",
"edit",
"save",
"update",
190 "deleteProfiles",
"showLevels",
"assignLevel",
191 "assignLevelSelectSkill",
"updateLevelOfSelectedSkill",
192 "assignLevelToProfile",
"updateLevelOfProfile",
193 "confirmLevelAssignmentRemoval",
"removeLevelAssignments",
194 "showUsers",
"assignUser",
"assignRole",
195 "confirmUserRemoval",
"removeUsers",
"exportProfiles",
"showImportForm",
196 "importProfiles",
"saveLevelOrder",
"createLocal",
"saveLocal",
197 "listLocalProfiles",
"showLevelsWithLocalContext",
"showObjects"))) {
204 public function setTabs(
string $a_active): void
216 $ilTabs->clearTargets();
217 $ilHelp->setScreenIdComponent(
"skmg_prof");
219 $ilCtrl->clearParameterByClass(self::class,
"sprof_id");
220 $ilTabs->setBackTarget(
221 $lng->
txt(
"skmg_skill_profiles"),
222 $ilCtrl->getLinkTarget($this,
"")
224 $ilCtrl->setParameter($this,
"sprof_id", $this->requested_sprof_id);
229 $lng->
txt(
"skmg_assigned_skill_levels"),
230 $ilCtrl->getLinkTarget($this,
"showLevels")
236 $lng->
txt(
"skmg_assigned_users"),
237 $ilCtrl->getLinkTarget($this,
"showUsers")
243 $lng->
txt(
"skmg_assigned_objects"),
244 $ilCtrl->getLinkTarget($this,
"showObjects")
248 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
251 $lng->
txt(
"settings"),
252 $ilCtrl->getLinkTarget($this,
"edit")
256 $ilTabs->activateTab($a_active);
266 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
267 $ilToolbar->addButton(
268 $lng->
txt(
"skmg_add_profile"),
269 $ilCtrl->getLinkTarget($this,
"create")
272 $ilToolbar->addButton(
274 $ilCtrl->getLinkTarget($this,
"showImportForm")
278 $table = $this->table_manager->getProfileTable($this->requested_ref_id, $this->skill_tree_id)->getComponent();
280 $tpl->
setContent($this->ui_ren->render($table));
295 $tpl->
setContent($this->ui_ren->render($form));
307 $lng->
txt(
"back_to_course"),
312 $tpl->
setContent($this->ui_ren->render($form));
321 $tpl->
setContent($this->ui_ren->render($form));
336 $ti = $this->ui_fac->input()->field()->text($lng->
txt(
"title"))
337 ->withRequired(
true);
340 $desc = $this->ui_fac->input()->field()->textarea($lng->
txt(
"description"));
344 if ($a_mode ==
"createLocal") {
346 $trees = $this->tree_service->getObjSkillTrees();
347 foreach ($trees as $tree) {
348 $options[$tree->getId()] = $tree->getTitle();
350 $se = $this->ui_fac->input()->field()->select($lng->
txt(
"skmg_skill_tree"), $options)->withRequired(
true);
355 ->withAcceptedMimeTypes([MimeType::IMAGE__PNG, MimeType::IMAGE__JPEG]);
360 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
361 if ($a_mode ==
"create") {
362 $sec_des = $lng->
txt(
"skmg_add_profile");
363 $form_action = $ilCtrl->getFormAction($this,
"save");
364 } elseif ($a_mode ==
"createLocal") {
365 $sec_des = $lng->
txt(
"skmg_add_local_profile");
366 $form_action = $ilCtrl->getFormAction($this,
"saveLocal");
369 $ti = $ti->withValue($this->
profile->getTitle());
370 $desc = $desc->withValue($this->
profile->getDescription());
371 $img = $this->
profile->getImageId() ? $img->withValue([$this->
profile->getImageId()]) : $img;
373 $sec_des = $lng->
txt(
"skmg_edit_profile");
374 $form_action = $ilCtrl->getFormAction($this,
"update");
379 $section_basic = $this->ui_fac->input()->field()->section(
380 [
"title" => $ti,
"description" => $desc],
384 $section_basic = $this->ui_fac->input()->field()->section(
385 [
"title" => $ti,
"description" => $desc,
"skill_tree" => $se],
389 $section_advanced = $this->ui_fac->input()->field()->section([
"image" => $img], $lng->
txt(
"skmg_form_presentation"));
391 $form = $this->ui_fac->input()->container()->form()->standard(
393 [
"section_basic" => $section_basic,
"section_advanced" => $section_advanced]
405 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
410 if ($this->request->getMethod() ==
"POST" 411 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
412 $form = $form->withRequest($this->request);
413 $result = $form->getData();
414 if (is_null($result)) {
415 $tpl->
setContent($this->ui_ren->render($form));
418 $profile = $this->skill_factory->profile()->profile(
420 $result[
"section_basic"][
"title"],
421 $result[
"section_basic"][
"description"],
422 $this->skill_tree_id,
423 $result[
"section_advanced"][
"image"][0] ??
"" 425 $this->profile_manager->createProfile($profile);
427 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
428 $ilCtrl->redirect($this,
"listProfiles");
430 $ilCtrl->redirect($this,
"listProfiles");
439 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
444 if ($this->request->getMethod() ==
"POST" 445 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
446 $form = $form->withRequest($this->request);
447 $result = $form->getData();
448 if (is_null($result)) {
449 $tpl->
setContent($this->ui_ren->render($form));
452 $profile = $this->skill_factory->profile()->profile(
454 $result[
"section_basic"][
"title"],
455 $result[
"section_basic"][
"description"],
456 (
int) $result[
"section_basic"][
"skill_tree"],
457 $result[
"section_advanced"][
"image"][0] ??
"",
458 $this->requested_ref_id
460 $new_profile = $this->profile_manager->createProfile($profile);
461 $this->profile_manager->addRoleToProfile(
462 $new_profile->getId(),
465 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
466 $ilCtrl->redirectByClass(
"ilcontskilladmingui",
"listProfiles");
468 $ilCtrl->redirectByClass(
"ilcontskilladmingui",
"listProfiles");
477 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
482 if ($this->request->getMethod() ==
"POST" 483 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
484 $form = $form->withRequest($this->request);
485 $result = $form->getData();
486 if (is_null($result)) {
487 $tpl->
setContent($this->ui_ren->render($form));
490 $profile = $this->skill_factory->profile()->profile(
492 $result[
"section_basic"][
"title"],
493 $result[
"section_basic"][
"description"],
494 $this->
profile->getSkillTreeId(),
495 $result[
"section_advanced"][
"image"][0] ??
"",
498 $this->profile_manager->updateProfile($profile);
500 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"msg_obj_modified"),
true);
501 $ilCtrl->redirect($this,
"edit");
503 $ilCtrl->redirect($this,
"listProfiles");
512 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
516 if (!empty($this->requested_profile_ids)) {
517 foreach ($this->requested_profile_ids as $i) {
518 $this->profile_manager->delete($i);
519 $this->profile_completion_manager->deleteEntriesForProfile($i);
521 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"msg_obj_modified"),
true);
524 $ilCtrl->redirect($this,
"listProfiles");
540 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
541 $ilToolbar->addButton(
542 $lng->
txt(
"skmg_assign_level"),
543 $ilCtrl->getLinkTarget($this,
"assignLevel")
565 $lng->
txt(
"back_to_course"),
569 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
571 $lng->
txt(
"skmg_assign_level"),
578 "showLevelsWithLocalContext",
598 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"skmg_select_skill_level_assign"));
600 $ilTabs->clearTargets();
602 $ilTabs->setBackTarget(
604 $ilCtrl->getLinkTarget($this,
"showLevelsWithLocalContext")
607 $ilTabs->setBackTarget(
609 $ilCtrl->getLinkTarget($this,
"showLevels")
618 "assignLevelSelectSkill",
622 if (!$exp->handleCommand()) {
638 $ilCtrl->saveParameter($this,
"cskill_id");
644 $ilTabs->clearTargets();
646 $ilTabs->setBackTarget(
648 $ilCtrl->getLinkTarget($this,
"showLevelsWithLocalContext")
651 $ilTabs->setBackTarget(
653 $ilCtrl->getLinkTarget($this,
"showLevels")
657 $id_parts = explode(
":", $this->requested_cskill_id);
658 $skill_id = (
int) $id_parts[0];
660 $level_data = $skill->getLevelData();
663 foreach ($level_data as $levels) {
664 $ilCtrl->setParameterByClass(self::class,
"level_id", $levels[
"id"]);
665 $items[] = $this->ui_fac->item()->standard($levels[
"title"])->withMainAction(
666 $this->ui_fac->link()->standard(
667 $lng->
txt(
"skmg_assign_level"),
668 $ilCtrl->getLinkTarget($this, $update ?
"updateLevelOfProfile" :
"assignLevelToProfile")
671 $ilCtrl->clearParameterByClass(self::class,
"level_id");
674 $list = $this->ui_fac->panel()->listing()->standard(
675 $skill->getTitle() .
", " . $lng->
txt(
"skmg_skill_levels"),
677 $this->ui_fac->item()->group(
"", $items)
681 $tpl->
setContent($this->ui_ren->render($list));
695 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
700 $this->profile_manager->updateSkillLevel($level);
702 $parts = explode(
":", $this->requested_cskill_id);
703 $level = $this->skill_factory->profile()->profileLevel(
708 $this->profile_manager->getMaxLevelOrderNr($this->
profile->getId()) + 10
710 $this->profile_manager->addSkillLevel($level);
714 $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($this->
profile->getId());
716 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
718 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
720 $ilCtrl->redirect($this,
"showLevels");
725 $parts = explode(
":", $this->requested_cskill_id);
726 $level = $this->profile_manager->getSkillLevel($this->
profile->getId(), (
int)
$parts[0], (
int)
$parts[1]);
727 $level_updated = $this->skill_factory->profile()->profileLevel(
728 $level->getProfileId(),
729 $level->getBaseSkillId(),
751 if (empty($this->requested_level_ass_ids)) {
752 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"no_checkbox"),
true);
754 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
756 $ilCtrl->redirect($this,
"showLevels");
759 $cgui->setFormAction($ilCtrl->getFormAction($this));
760 $cgui->setHeaderText($lng->
txt(
"skmg_confirm_remove_level_ass"));
762 $cgui->setCancel($lng->
txt(
"cancel"),
"showLevelsWithLocalContext");
764 $cgui->setCancel($lng->
txt(
"cancel"),
"showLevels");
766 $cgui->setConfirm($lng->
txt(
"remove"),
"removeLevelAssignments");
768 foreach ($this->requested_level_ass_ids as $i) {
769 $id_arr = explode(
":", $i);
787 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
791 if (!empty($this->requested_level_ass_ids)) {
792 foreach ($this->requested_level_ass_ids as $i) {
793 $id_arr = explode(
":", $i);
794 $level = $this->skill_factory->profile()->profileLevel(
801 $this->profile_manager->removeSkillLevel($level);
803 $this->profile_manager->fixSkillOrderNumbering($this->
profile->getId());
807 $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($this->
profile->getId());
810 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
812 $ilCtrl->redirect($this,
"showLevels");
821 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
826 $this->profile_manager->updateSkillOrder($this->
profile->getId(), $order);
828 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
830 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
832 $ilCtrl->redirect($this,
"showLevels");
842 if ($this->skill_tree_access_manager->hasManageProfilesPermission() && !$this->
profile->getRefId() > 0) {
847 'auto_complete_name' => $lng->
txt(
'user'),
848 'submit_name' => $lng->
txt(
'skmg_assign_user')
852 $ilToolbar->addSeparator();
854 $button = $this->ui_fac->button()->standard(
855 $this->
lng->txt(
"skmg_add_assignment"),
856 $this->
ctrl->getLinkTargetByClass(
"ilRepositorySearchGUI",
"start")
858 $ilToolbar->addComponent($button);
863 $table = $this->table_manager->getProfileUserAssignmentTable(
865 $this->skill_tree_access_manager
867 $tpl->
setContent($this->ui_ren->render($table));
875 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
882 $this->profile_manager->addUserToProfile($this->
profile->getId(),
$user_id);
884 $this->profile_completion_manager->writeCompletionEntryForSingleProfileOfUser(
$user_id, $this->
profile->getId());
885 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
890 if (!empty($users)) {
891 foreach ($users as $id) {
893 $this->profile_manager->addUserToProfile($this->
profile->getId(),
$id);
895 $this->profile_completion_manager->writeCompletionEntryForSingleProfileOfUser($id, $this->
profile->getId());
898 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
901 $ilCtrl->redirect($this,
"showUsers");
909 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
914 foreach ($role_ids as $id) {
916 $this->profile_manager->addRoleToProfile($this->
profile->getId(),
$id);
917 $this->profile_completion_manager->writeCompletionEntryForRole($id, $this->
profile->getId());
922 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
925 $ilCtrl->redirect($this,
"showUsers");
933 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
937 if (!empty($this->requested_user_ids)) {
938 foreach ($this->requested_user_ids as $i) {
942 $this->profile_manager->removeUserFromProfile($this->
profile->getId(), $i);
946 $this->profile_manager->removeRoleFromProfile($this->
profile->getId(), $i);
953 $this->tpl->setOnScreenMessage(
"success", $lng->
txt(
"msg_obj_modified"),
true);
955 $ilCtrl->redirect($this,
"showUsers");
964 $objects = $this->usage_manager->getAssignedObjectsForSkillProfile($this->
profile->getId());
966 $table = $this->table_manager->getAssignedObjectsTable(
973 $tpl->
setContent($this->ui_ren->render($table));
976 public function exportProfiles():
void 981 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
985 $profiles_to_export = [];
986 if ($this->requested_table_profile_action ===
"exportProfiles" 987 && !empty($this->requested_table_profile_ids)
988 && $this->requested_table_profile_ids[0] ===
"ALL_OBJECTS" 990 $profiles = $this->skill_tree_id
991 ? $this->profile_manager->getProfilesForSkillTree($this->skill_tree_id)
992 : $this->profile_manager->getProfilesForAllSkillTrees();
993 foreach ($profiles as $profile) {
994 $profiles_to_export[] = $profile->getId();
996 } elseif ($this->requested_table_profile_action ===
"exportProfiles") {
997 $profiles_to_export =
array_map(
"intval", $this->requested_table_profile_ids);
1000 if (empty($profiles_to_export)) {
1001 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"no_checkbox"),
true);
1002 $ilCtrl->redirect($this,
"");
1006 $configs = $this->export_factory->consumer()->exportConfig()->allExportConfigs();
1007 $config = $configs->getElementByComponent(
'components/ILIAS/Skill');
1009 $config->setSelectedProfiles($profiles_to_export);
1010 $config->setSkillTreeId($this->skill_tree_id);
1013 $obj->setRefId($this->requested_ref_id);
1014 $obj->setType(
'skee');
1016 $obj->setType(
'skmg');
1017 $this->export_factory->consumer()->handler()->createStandardExportByObject($this->usr->getId(), $obj, $configs);
1023 $ilCtrl->redirectByClass(array(
"ilobjskilltreegui",
"ilexportgui"),
"");
1043 $fi->setRequired(
true);
1044 $form->addItem($fi);
1047 $form->addCommandButton(
"importProfiles", $lng->
txt(
"import"));
1048 $form->addCommandButton(
"", $lng->
txt(
"cancel"));
1050 $form->setTitle($lng->
txt(
"import"));
1051 $form->setFormAction($ilCtrl->getFormAction($this));
1063 if ($form->checkInput()) {
1065 $conf = $imp->getConfig(
"components/ILIAS/Skill");
1066 $conf->setSkillTreeId($this->skill_tree_id);
1067 $imp->importEntity($_FILES[
"import_file"][
"tmp_name"], $_FILES[
"import_file"][
"name"],
"skmg",
"components/ILIAS/Skill");
1069 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
1070 $ilCtrl->redirect($this,
"");
1072 $form->setValuesByPost();
TableGUI class for skill profile levels.
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
Interface Observer Contains several chained tasks and infos about them.
Request wrapper for guis in skill administration.
getLinkTarget(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
confirmLevelAssignmentRemoval()
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
static _lookupId($a_user_str)
setContent(string $a_html)
Sets content for standard template.
setTabs(string $a_active)
showLevelsWithLocalContext()
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.
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
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
Table TableManager $table_manager
initProfileForm(string $a_mode="edit")
ilGlobalTemplateInterface $tpl
assignLevelToProfile(?Profile\SkillProfileLevel $level=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
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...
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
__construct(SkillTreeAccess $skill_tree_access_manager, int $skill_tree_id=0)
clearTargets()
clear all targets
bool $requested_local_context
Skill internal factory service.
DataFactory $data_factory
string $requested_table_profile_action
ArrayBasedRequestWrapper $query
Explorer class that works on tree objects (Services/Tree)
setDescription(string $a_descr)
Sets description below title in standard template.
Profile SkillProfileManager $profile_manager
ExportFactoryInterface $export_factory
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...
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
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
getLinkTargetByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
Class ArrayBasedRequestWrapper.