19declare(strict_types=1);
27use Psr\Http\Message\ServerRequestInterface;
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();
162 if ($this->
profile->getRefId() > 0 && $this->requested_local_context) {
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
213 $this->profile->getTitle());
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()) {
252 $ilCtrl->getLinkTarget($this,
"edit")
256 $ilTabs->activateTab($a_active);
266 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
267 $ilToolbar->addButton(
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();
295 $tpl->
setContent($this->ui_ren->render($form));
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)) {
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)) {
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)) {
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] ??
"",
496 $this->profile->getRefId()
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")
569 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
571 $lng->
txt(
"skmg_assign_level"),
578 "showLevelsWithLocalContext",
593 $this->profile->getTitle());
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");
641 $this->profile->getTitle());
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)
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(
707 $this->requested_level_id,
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(),
731 $this->requested_level_id,
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
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();
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"),
"");
1042 $fi->setSuffixes(array(
"zip"));
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();
Class ArrayBasedRequestWrapper.
Manages skill profile completion.
Request wrapper for guis in skill administration.
Skill internal factory service.
Skill internal manager service.
static stripSlashesArray(array $a_arr, bool $a_strip_html=true, string $a_allow="")
static lookupLevelTitle(int $a_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilCtrl provides processing control methods.
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
@inheritDoc
getLinkTarget(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
@inheritDoc
getLinkTargetByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
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...
static _lookupId(string|array $a_user_str)
Class ilObject Basic functions for all objects.
static _lookupType(int $id, bool $reference=false)
static getDefaultMemberRole(int $a_ref_id)
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...
confirmLevelAssignmentRemoval()
SkillAdminGUIRequest $admin_gui_request
Table TableManager $table_manager
ServerRequestInterface $request
ArrayBasedRequestWrapper $query
array $requested_level_order
Profile SkillProfileCompletionManager $profile_completion_manager
setTabs(string $a_active)
Usage SkillUsageManager $usage_manager
SkillTreeAccess $skill_tree_access_manager
Profile SkillProfile $profile
string $requested_table_profile_action
showLevelsWithLocalContext()
updateLevelOfSelectedSkill()
string $requested_cskill_id
SkillInternalFactoryService $skill_factory
array $requested_user_ids
initProfileForm(string $a_mode="edit")
bool $requested_local_context
__construct(SkillTreeAccess $skill_tree_access_manager, int $skill_tree_id=0)
assignRole(array $role_ids)
assignLevelToProfile(?Profile\SkillProfileLevel $level=null)
ExportFactoryInterface $export_factory
DataFactory $data_factory
ilGlobalTemplateInterface $tpl
assignLevelSelectSkill(bool $update=false)
Output level table for profile assignment.
array $requested_level_ass_ids
array $requested_profile_ids
Profile SkillProfileManager $profile_manager
string $requested_user_login
array $requested_table_profile_ids
SkillTreeService $tree_service
TableGUI class for skill profile levels.
Class ilSkillProfileUploadHandlerGUI.
Explorer class that works on tree objects (Services/Tree)
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setBackTarget(string $a_title, string $a_target, string $a_frame="")
clearTargets()
clear all targets
setDescription(string $a_descr)
Sets description below title in standard template.
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.
setContent(string $a_html)
Sets content for standard template.
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...
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.