ILIAS  release_8 Revision v8.24
class.ilMStShowUserCompetencesGUI.php
Go to the documentation of this file.
1<?php
21
28{
29 public const CMD_SHOW_SKILLS = 'showSkills';
31 public const SUB_TAB_SKILLS = 'skills';
32 private int $usr_id;
35 private Container $dic;
36 private \ilGlobalTemplateInterface $main_tpl;
37
38 public function __construct(Container $dic)
39 {
40 global $DIC;
41 $this->main_tpl = $DIC->ui()->mainTemplate();
42 $this->dic = $dic;
43 $this->access = ilMyStaffAccess::getInstance();
44
45 $this->usr_id = $this->dic->http()->request()->getQueryParams()['usr_id'];
46 $this->dic->ctrl()->setParameter($this, 'usr_id', $this->usr_id);
47 }
48
49 protected function checkAccessOrFail(): void
50 {
51 if (!$this->usr_id) {
52 $this->main_tpl->setOnScreenMessage('failure', $this->dic->language()->txt("permission_denied"), true);
53 $this->dic->ctrl()->redirectByClass(ilDashboardGUI::class, "");
54 }
55
56 if ($this->access->hasCurrentUserAccessToUser($this->usr_id)
57 && $this->access->hasCurrentUserAccessToCompetences()
58 ) {
59 return;
60 } else {
61 $this->main_tpl->setOnScreenMessage('failure', $this->dic->language()->txt("permission_denied"), true);
62 $this->dic->ctrl()->redirectByClass(ilDashboardGUI::class, "");
63 }
64 }
65
66 final public function executeCommand(): void
67 {
68 $this->checkAccessOrFail();
69
70 $cmd = $this->dic->ctrl()->getCmd();
71 $next_class = $this->dic->ctrl()->getNextClass();
72
73 switch ($next_class) {
74 default:
75 switch ($cmd) {
76 case self::CMD_INDEX:
78 default:
79 $this->addSubTabs(self::SUB_TAB_SKILLS);
80 $this->showSkills();
81 break;
82 }
83 }
84 }
85
86 protected function addSubTabs(string $active_sub_tab): void
87 {
88 $this->dic->language()->loadLanguageModule('skmg');
89 $this->dic->tabs()->addSubTab(
90 self::SUB_TAB_SKILLS,
91 $this->dic->language()->txt('skmg_selected_skills'),
92 $this->dic->ctrl()->getLinkTarget($this, self::CMD_SHOW_SKILLS)
93 );
94
95 $this->dic->tabs()->activateSubTab($active_sub_tab);
96 }
97
98 protected function showSkills(): void
99 {
100 $skills_gui = new ilPersonalSkillsGUI();
101 $skills = ilPersonalSkill::getSelectedUserSkills($this->usr_id);
102 $html = '';
103 foreach ($skills as $skill) {
104 $html .= $skills_gui->getSkillHTML($skill["skill_node_id"], $this->usr_id);
105 }
106 $this->dic->ui()->mainTemplate()->setContent($html);
107 }
108}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:32
Class ilMStShowUserCompetencesGUI.
static getSelectedUserSkills(int $a_user_id)
Personal skills GUI class.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28