ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilMStShowUserCompetencesGUI.php
Go to the documentation of this file.
1 <?php
21 
28 {
29  public const CMD_SHOW_SKILLS = 'showSkills';
30  public const CMD_INDEX = self::CMD_SHOW_SKILLS;
31  public const SUB_TAB_SKILLS = 'skills';
32  private int $usr_id;
33  protected ilTable2GUI $table;
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:
77  case self::CMD_SHOW_SKILLS:
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:31
global $DIC
Definition: feed.php:28
Personal skills GUI class.
static getSelectedUserSkills(int $a_user_id)
Class ilMStShowUserCompetencesGUI.