19 declare(strict_types=1);
60 $this->tool_context = $DIC->globalScreen()->tool()->context();
61 $this->
user = $DIC->user();
63 $this->rbacsystem = $DIC->rbac()->system();
64 $this->
help = $DIC->help();
65 $tpl = $DIC->ui()->mainTemplate();
66 $this->
lng = $DIC->language();
67 $this->
ctrl = $DIC->ctrl();
70 $DIC->ui()->mainTemplate()->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_not_available_for_anon'),
true);
71 $DIC->ctrl()->redirectToURL(
'login.php?cmd=force_login');
76 $this->
ctrl->setContextObject(
81 $this->
lng->loadLanguageModule(
'pdesk');
82 $this->
lng->loadLanguageModule(
'pd');
83 $this->
lng->loadLanguageModule(
'dash');
84 $this->
lng->loadLanguageModule(
'mmbr');
86 $params = $DIC->http()->request()->getQueryParams();
87 $this->cmdClass = (
$params[
'cmdClass'] ??
'');
88 $this->requested_view = (
int) (
$params[
'view'] ?? 0);
89 $this->requested_prt_id = (
int) (
$params[
'prt_id'] ?? 0);
90 $this->requested_gtp = (
int) (
$params[
'gtp'] ?? 0);
91 $this->requested_dsh = (string) (
$params[
'dsh'] ?? null);
92 $this->requested_wsp_id = (
int) (
$params[
'wsp_id'] ?? 0);
94 $this->
ctrl->saveParameter($this, [
'view']);
103 $next_class = $this->
ctrl->getNextClass();
104 $this->
ctrl->setReturn($this,
'show');
105 switch ($next_class) {
106 case strtolower(ilPersonalProfileGUI::class):
110 $this->
ctrl->forwardCommand($profile_gui);
113 case strtolower(ilPersonalSettingsGUI::class):
117 $this->
ctrl->forwardCommand($settings_gui);
120 case strtolower(ilCalendarPresentationGUI::class):
123 $this->tpl->setTitle($this->
lng->txt(
'calendar'));
126 $this->
ctrl->forwardCommand($cal);
127 $this->tpl->printToStdout();
130 case strtolower(ilPDNotesGUI::class):
132 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
140 $this->
ctrl->forwardCommand($pd_notes_gui);
143 case strtolower(ilPDNewsGUI::class):
147 $this->
ctrl->forwardCommand($pd_news_gui);
150 case strtolower(ilColumnGUI::class):
151 if (strtolower($cmdClass = $this->
ctrl->getCmdClass()) === strtolower(ilSelectedItemsBlockGUI::class)) {
153 $ret = $this->
ctrl->forwardCommand($gui);
155 $this->tpl->setContent($ret);
156 $this->tpl->printToStdout();
165 case strtolower(ilContactGUI::class):
172 $this->tpl->setTitle($this->
lng->txt(
'mail_addressbook'));
177 case strtolower(ilPersonalWorkspaceGUI::class):
179 $this->
ctrl->forwardCommand($wsgui);
180 $this->tpl->printToStdout();
183 case strtolower(ilPortfolioRepositoryGUI::class):
187 $this->
ctrl->forwardCommand($pfgui);
188 $this->tpl->printToStdout();
191 case strtolower(ilAchievementsGUI::class):
195 $this->
ctrl->forwardCommand($achievegui);
198 case strtolower(ilMyStaffGUI::class):
201 $this->
ctrl->forwardCommand($mstgui);
203 case strtolower(ilGroupUserActionsGUI::class):
207 $this->
ctrl->forwardCommand($ggui);
208 $this->tpl->printToStdout();
210 case strtolower(ilDashboardLearningSequenceGUI::class):
211 case strtolower(ilMembershipBlockGUI::class):
212 case strtolower(ilDashboardRecommendedContentGUI::class):
213 case strtolower(ilSelectedItemsBlockGUI::class):
214 case strtolower(ilStudyProgrammeDashboardViewGUI::class):
215 $gui =
new $next_class();
216 $ret = $this->
ctrl->forwardCommand($gui);
217 if ($ret !==
'' && $ret !== null) {
218 $this->tpl->setContent($ret);
220 $this->tpl->printToStdout();
222 case strtolower(ilObjStudyProgrammeGUI::class):
224 $ret = $this->
ctrl->forwardCommand($gui);
225 $this->tpl->printToStdout();
228 $context->current()->addAdditionalData(self::DISENGAGE_MAINBAR,
true);
231 $cmd = $this->
ctrl->getCmd(
'show');
239 $this->tpl->loadStandardTemplate();
246 $this->tpl->setTitle($this->
lng->txt(
'dash_dashboard'));
252 $this->tpl->printToStdout();
262 if ($ilCtrl->getNextClass() ==
'ilcolumngui' &&
264 $html = $ilCtrl->forwardCommand($column_gui);
266 if (!$ilCtrl->isAsynch()) {
270 $html = $ilCtrl->forwardCommand($column_gui);
274 $html = $ilCtrl->forwardCommand($column_gui);
280 'Services/Dashboard',
282 [
'personal_desktop_gui' => $this]
284 if (!$uip->replaced()) {
287 $html = $uip->getHTML($html);
306 if ($ilCtrl->getNextClass() ==
'ilcolumngui' &&
309 $html = $ilCtrl->forwardCommand($column_gui);
311 if (!$ilCtrl->isAsynch()) {
315 'Services/Dashboard',
317 [
'personal_desktop_gui' => $this]
319 if (!$uip->replaced()) {
320 $html = $ilCtrl->getHTML($column_gui);
322 $html = $uip->getHTML($html);
331 $this->tpl->loadStandardTemplate();
334 $this->tpl->setTitle($this->
lng->txt(
'personal_desktop'));
348 if ($viewSettings->enabledMemberships()) {
349 $this->
ctrl->setParameter($this,
'view', $viewSettings->getMembershipsView());
351 $this->
ctrl->redirect($this,
'show');
357 if ($viewSettings->enabledSelectedItems()) {
358 $this->
ctrl->setParameter($this,
'view', $viewSettings->getSelectedItemsView());
365 $this->
ctrl->redirectByClass(ilPersonalProfileGUI::class);
371 if ($this->requested_dsh !=
'') {
372 $this->
ctrl->setParameterByClass(ilPortfolioRepositoryGUI::class,
'shr_id', $this->requested_dsh);
376 if ($this->requested_prt_id > 0) {
377 $this->
ctrl->setParameterByClass(ilObjPortfolioGUI::class,
'prt_id', $this->requested_prt_id);
378 $this->
ctrl->setParameterByClass(ilObjPortfolioGUI::class,
'gtp', $this->requested_gtp);
379 $this->
ctrl->redirectByClass([ilPortfolioRepositoryGUI::class, ilObjPortfolioGUI::class],
'preview');
381 $this->
ctrl->redirectByClass(ilPortfolioRepositoryGUI::class, $cmd);
387 $this->
ctrl->redirectByClass(ilPersonalSettingsGUI::class);
392 $this->
ctrl->redirectByClass(ilPDNewsGUI::class);
398 $request = $DIC->http()->request();
400 $query_params = $request->getQueryParams();
402 if (array_key_exists(
'cal_view', $query_params) && $query_params[
'cal_view']) {
403 $cal_view = $query_params[
'cal_view'];
404 $this->
ctrl->setParameter($this,
'cal_view', $cal_view);
407 if (!empty($query_params[
'cal_agenda_per'])) {
408 $cal_period = $query_params[
'cal_agenda_per'];
409 $this->
ctrl->setParameter($this,
'cal_agenda_per', $cal_period);
412 $this->
ctrl->redirectByClass(ilCalendarPresentationGUI::class);
418 if ($this->requested_dsh !=
'') {
419 $this->
ctrl->setParameterByClass(ilPersonalWorkspaceGUI::class,
'shr_id', $this->requested_dsh);
423 if ($this->requested_wsp_id > 0) {
424 $this->
ctrl->setParameterByClass(ilPersonalWorkspaceGUI::class,
'wsp_id', $this->requested_wsp_id);
427 if ($this->requested_gtp) {
428 $this->
ctrl->setParameterByClass(ilPersonalWorkspaceGUI::class,
'gtp', $this->requested_gtp);
431 $this->
ctrl->redirectByClass(ilPersonalWorkspaceGUI::class, $cmd);
436 $this->
ctrl->redirectByClass(ilMyStaffGUI::class);
441 $this->
ctrl->redirectByClass([ilAchievementsGUI::class, ilBadgeProfileGUI::class]);
446 $this->
ctrl->redirectByClass(ilPersonalSkillsGUI::class);
451 $this->tpl->setTitle($this->
lng->txt(
'dash_dashboard'));
461 $this->
ctrl->redirect($this,
'show');
467 $tpl =
new ilTemplate(
'tpl.dashboard.html',
true,
true,
'Services/Dashboard');
470 foreach ($settings->getViewPositions() as $view_position) {
471 if ($settings->isViewEnabled($view_position)) {
static get(string $a_var)
GUI class for personal workspace.
Class ilObjStudyProgrammeGUI class ilObjStudyProgrammeGUI: ilPermissionGUI ilObjStudyProgrammeGUI: ...
ContextServices $tool_context
const VIEW_MY_STUDYPROGRAMME
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
setVariable(string $variable, $value='')
Sets the given variable to the given value.
const CMD_JUMP_TO_MY_STAFF
Portfolio repository gui class.
ilGlobalTemplateInterface $tpl
Interface ilCtrlBaseClassInterface describes ilCtrl base classes.
const VIEW_RECOMMENDED_CONTENT
const VIEW_LEARNING_SEQUENCES
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Column user interface class.
setScreenIdComponent(string $a_comp)
static redirect(string $a_script)
GUI class for personal profile.
static preloadPDBlockSettings()
Preload pd info.
const VIEW_MY_MEMBERSHIPS
const VIEW_SELECTED_ITEMS
static set(string $a_var, $a_val)
Set a value.