ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilMainMenuGUI Class Reference

Handles display of the main menu. More...

+ Inheritance diagram for ilMainMenuGUI:
+ Collaboration diagram for ilMainMenuGUI:

Public Member Functions

 __construct ($a_target="_top", $a_use_start_template=false, ilTemplate $a_main_tpl=null)
 
 setMode ($a_value)
 
 getMode ()
 
 setTopBarBack ($a_url, $a_caption=null)
 
 getSpacerClass ()
 
 setActive ($a_active)
 
 setLoginTargetPar ($a_val)
 Set target parameter for login (public sector). More...
 
 getLoginTargetPar ()
 Get target parameter for login. More...
 
 setTemplateVars ()
 set all template variables (images, scripts, target frames, ...) More...
 
 renderStatusBox ($a_tpl)
 Render status box. More...
 
 renderMainMenuListEntries ($a_tpl, $a_call_get=true)
 desc More...
 
 renderEntry ($a_tpl, $a_id, $a_txt, $a_script, $a_target="_top")
 Render main menu entry. More...
 
 getScriptTarget ($a_script)
 generates complete script target (private) More...
 
 getHTML ()
 
 renderDropDown ($a_tpl, $a_id)
 GetDropDownHTML. More...
 
 renderHelpButtons ()
 Render help button. More...
 
 renderAwareness ()
 Render awareness tool. More...
 
 showLogoOnly ($a_value)
 Toggle rendering of main menu, search, user info. More...
 

Static Public Member Functions

static getLanguageSelection ($a_in_topbar=false)
 
static _checkAdministrationPermission ()
 

Data Fields

 $tpl
 
 $target
 
 $start_template
 
 $mail
 
const MODE_FULL = 1
 
const MODE_TOPBAR_ONLY = 2
 
const MODE_TOPBAR_REDUCED = 3
 
const MODE_TOPBAR_MEMBERVIEW = 4
 

Protected Member Functions

 initMemberView ()
 Init member view type $lng. More...
 
 populateWithBuddySystem ()
 Includes all buddy system/user connections related javascript code. More...
 
 populateWithOnScreenChat ()
 
 renderOnScreenChatMenu ()
 
 renderOnScreenNotifications (\ilObjUser $user, \ilTemplate $mainTpl, \ilLanguage $lng)
 
 getHeaderURL ()
 
 renderBackgroundTasks ()
 

Protected Attributes

 $rbacsystem
 
 $user
 
 $lng
 
 $plugin_admin
 
 $tree
 
 $access
 
 $nav_history
 
 $settings
 
 $ctrl
 
 $help
 
 $main_tpl
 
 $mode
 
 $topbar_back_url
 
 $topbar_back_caption
 

Detailed Description

Handles display of the main menu.

Author
Alex Killing
Version
$Id$

Definition at line 17 of file class.ilMainMenuGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilMainMenuGUI::__construct (   $a_target = "_top",
  $a_use_start_template = false,
ilTemplate  $a_main_tpl = null 
)
Parameters
string$a_targettarget frame
boolean$a_use_start_templatetrue means: target scripts should be called through start template

Definition at line 97 of file class.ilMainMenuGUI.php.

References $DIC, $ilUser, $rbacsystem, ilMemberViewSettings\getInstance(), ilMailGlobalServices\getMailObjectRefId(), initMemberView(), Monolog\Handler\mail(), setMode(), settings(), and user().

98  {
99  global $DIC;
100 
101  if ($a_main_tpl != null) {
102  $this->main_tpl = $a_main_tpl;
103  } else {
104  $this->main_tpl = $DIC["tpl"];
105  }
106 
107  $this->rbacsystem = $DIC->rbac()->system();
108  $this->user = $DIC->user();
109  $this->lng = $DIC->language();
110  $this->plugin_admin = $DIC["ilPluginAdmin"];
111  $this->tree = $DIC->repositoryTree();
112  $this->access = $DIC->access();
113  $this->nav_history = $DIC["ilNavigationHistory"];
114  $this->settings = $DIC->settings();
115  $this->ctrl = $DIC->ctrl();
116  $this->help = $DIC["ilHelp"];
117  $this->ui = $DIC->ui();
118  $rbacsystem = $DIC->rbac()->system();
119  $ilUser = $DIC->user();
120 
121  $this->tpl = new ilTemplate(
122  "tpl.main_menu.html",
123  true,
124  true,
125  "Services/MainMenu"
126  );
127  $this->target = $a_target;
128  $this->start_template = $a_use_start_template;
129 
130  $this->mail = false;
131  if ($ilUser->getId() != ANONYMOUS_USER_ID) {
132  if ($rbacsystem->checkAccess('internal_mail', ilMailGlobalServices::getMailObjectRefId())) {
133  $this->mail = true;
134  }
135  }
136 
137  $this->setMode(self::MODE_FULL);
138 
139  // member view
140  include_once './Services/Container/classes/class.ilMemberViewSettings.php';
142  if ($set->isActive()) {
143  $this->initMemberView();
144  }
145  }
global $DIC
Definition: saml.php:7
initMemberView()
Init member view type $lng.
user()
Definition: user.php:4
mail($to, $subject, $message, $additional_headers=null, $additional_parameters=null)
special template class to simplify handling of ITX/PEAR
$ilUser
Definition: imgupload.php:18
settings()
Definition: settings.php:2
static getInstance()
Get instance.
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable...
+ Here is the call graph for this function:

Member Function Documentation

◆ _checkAdministrationPermission()

static ilMainMenuGUI::_checkAdministrationPermission ( )
static

Definition at line 884 of file class.ilMainMenuGUI.php.

References $DIC, and $rbacsystem.

Referenced by ilObjMediaPoolGUI\createMediaFromUploadDir(), ilObjMediaPoolGUI\listMedia(), renderMainMenuListEntries(), and ilObjMediaPoolGUI\selectUploadDirFiles().

885  {
886  global $DIC;
887 
888  $rbacsystem = $DIC->rbac()->system();
889 
890  //if($rbacsystem->checkAccess("visible,read", SYSTEM_FOLDER_ID))
891  if ($rbacsystem->checkAccess("visible", SYSTEM_FOLDER_ID)) {
892  return true;
893  }
894  return false;
895  }
global $DIC
Definition: saml.php:7
+ Here is the caller graph for this function:

◆ getHeaderURL()

ilMainMenuGUI::getHeaderURL ( )
protected

Definition at line 1292 of file class.ilMainMenuGUI.php.

References $url, and ilUserUtil\getStartingPointAsUrl().

Referenced by setTemplateVars().

1293  {
1294  include_once './Services/User/classes/class.ilUserUtil.php';
1296 
1297  if (!$url) {
1298  $url = "./goto.php?target=root_1";
1299  }
1300 
1301  return $url;
1302  }
static getStartingPointAsUrl()
Get current starting point setting as URL.
$url
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getHTML()

ilMainMenuGUI::getHTML ( )

Definition at line 897 of file class.ilMainMenuGUI.php.

References setTemplateVars().

898  {
899  // this is a workaround for bugs like 14016
900  // the main menu does not need the YUI connection, but many other
901  // features since they rely on il.Util.sendAjaxGetRequestToUrl (see Services/Javascript)
902  // which still uses YUI. This should be migrated to jQuery with a future major release
903  include_once "Services/YUI/classes/class.ilYuiUtil.php";
904  ilYUIUtil::initConnection();
905 
906  $this->setTemplateVars();
907 
908  return $this->tpl->get();
909  }
setTemplateVars()
set all template variables (images, scripts, target frames, ...)
+ Here is the call graph for this function:

◆ getLanguageSelection()

static ilMainMenuGUI::getLanguageSelection (   $a_in_topbar = false)
static

Definition at line 201 of file class.ilMainMenuGUI.php.

References $_SERVER, $base, $DIC, $lng, and ilUtil\appendUrlParameterString().

Referenced by ilStartUpGUI\getLanguageSelection().

202  {
203  global $DIC;
204 
205  $lng = $DIC->language();
206 
207  include_once("./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
208  $gr_list = new ilGroupedListGUI();
209  $gr_list->setAsDropDown(true);
210 
211  $languages = $lng->getInstalledLanguages();
212  if (sizeof($languages) > 1) { // #11237
213  foreach ($languages as $lang_key) {
214  $base = substr($_SERVER["REQUEST_URI"], strrpos($_SERVER["REQUEST_URI"], "/") + 1);
215  $base = preg_replace("/&*lang=[a-z]{2}&*/", "", $base);
217  $base,
218  "lang=" . $lang_key
219  );
220  $link = str_replace("?&", "?", $link);
221 
222  $gr_list->addEntry($lng->_lookupEntry($lang_key, "meta", "meta_l_" . $lang_key), $link);
223  }
224  return $gr_list->getHTML();
225  }
226  }
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
global $DIC
Definition: saml.php:7
$base
Definition: index.php:4
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
Grouped list GUI class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLoginTargetPar()

ilMainMenuGUI::getLoginTargetPar ( )

Get target parameter for login.

Definition at line 196 of file class.ilMainMenuGUI.php.

Referenced by setTemplateVars().

197  {
198  return $this->login_target_par;
199  }
+ Here is the caller graph for this function:

◆ getMode()

ilMainMenuGUI::getMode ( )

Definition at line 152 of file class.ilMainMenuGUI.php.

References $mode.

Referenced by getSpacerClass(), renderHelpButtons(), renderOnScreenNotifications(), and setTemplateVars().

153  {
154  return $this->mode;
155  }
+ Here is the caller graph for this function:

◆ getScriptTarget()

ilMainMenuGUI::getScriptTarget (   $a_script)

generates complete script target (private)

Definition at line 875 of file class.ilMainMenuGUI.php.

References defined.

876  {
877  $script = "./" . $a_script;
878  if (defined("ILIAS_MODULE")) {
879  $script = "." . $script;
880  }
881  return $script;
882  }
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27

◆ getSpacerClass()

ilMainMenuGUI::getSpacerClass ( )

Definition at line 163 of file class.ilMainMenuGUI.php.

References getMode().

164  {
165  switch ($this->getMode()) {
166  case self::MODE_TOPBAR_ONLY:
167  case self::MODE_TOPBAR_REDUCED:
168  case self::MODE_TOPBAR_MEMBERVIEW:
169  return "ilFixedTopSpacerBarOnly";
170 
171  case self::MODE_FULL:
172  return "ilFixedTopSpacer";
173  }
174  }
+ Here is the call graph for this function:

◆ initMemberView()

ilMainMenuGUI::initMemberView ( )
protected

Init member view type $lng.

Definition at line 915 of file class.ilMainMenuGUI.php.

References $lng, $url, ilLink\_getLink(), ilObject\_lookupObjId(), ilObject\_lookupType(), array, ilMemberViewSettings\getInstance(), setMode(), and setTopBarBack().

Referenced by __construct().

916  {
917  $lng = $this->lng;
918 
919  include_once './Services/Container/classes/class.ilMemberViewSettings.php';
920  $ref_id = ilMemberViewSettings::getInstance()->getCurrentRefId();
921 
922  if (!$ref_id) {
923  return false;
924  }
925 
926  include_once './Services/Link/classes/class.ilLink.php';
928  $ref_id,
930  array('mv' => 0)
931  );
932 
933  $this->setMode(self::MODE_TOPBAR_MEMBERVIEW);
934  $this->setTopBarBack($url, $lng->txt('mem_view_close'));
935  }
setTopBarBack($a_url, $a_caption=null)
static _lookupObjId($a_id)
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
static getInstance()
Get instance.
$url
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateWithBuddySystem()

ilMainMenuGUI::populateWithBuddySystem ( )
protected

Includes all buddy system/user connections related javascript code.

Definition at line 1228 of file class.ilMainMenuGUI.php.

References ilBuddySystem\getInstance(), and ilBuddySystemGUI\initializeFrontend().

Referenced by setTemplateVars().

1229  {
1230  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
1231  if (ilBuddySystem::getInstance()->isEnabled()) {
1232  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php';
1234  }
1235  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateWithOnScreenChat()

ilMainMenuGUI::populateWithOnScreenChat ( )
protected

Definition at line 1237 of file class.ilMainMenuGUI.php.

References ilOnScreenChatGUI\initializeFrontend().

Referenced by setTemplateVars().

1238  {
1239  require_once 'Services/OnScreenChat/classes/class.ilOnScreenChatGUI.php';
1240 
1242  }
static initializeFrontend()
Initialize frontend and delivers required javascript files and configuration to the global template...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderAwareness()

ilMainMenuGUI::renderAwareness ( )

Render awareness tool.

Definition at line 1255 of file class.ilMainMenuGUI.php.

References ilAwarenessGUI\getInstance().

Referenced by setTemplateVars().

1256  {
1257  include_once("./Services/Awareness/classes/class.ilAwarenessGUI.php");
1259 
1260  $this->tpl->setVariable("AWARENESS", $aw->getMainMenuHTML());
1261  }
static getInstance()
Get instance.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderBackgroundTasks()

ilMainMenuGUI::renderBackgroundTasks ( )
protected

Definition at line 1304 of file class.ilMainMenuGUI.php.

References $DIC, $factory, $main_tpl, $url, array, ilBTControllerGUI\CMD_GET_POPOVER_CONTENT, ilBTControllerGUI\FROM_URL, ILIAS\BackgroundTasks\BucketMeta\getState(), ilBTControllerGUI\hash(), and ilBTControllerGUI\REPLACE_SIGNAL.

Referenced by setTemplateVars().

1305  {
1306  global $DIC;
1307 
1309 
1310  if ($DIC->user()->isAnonymous() || (int) $DIC->user()->getId() === 0) {
1311  return;
1312  }
1313 
1314  $DIC->language()->loadLanguageModule("background_tasks");
1315  $factory = $DIC->ui()->factory();
1316  $persistence = $DIC->backgroundTasks()->persistence();
1317  $metas = $persistence->getBucketMetaOfUser($DIC->user()->getId());
1318  if (!count($metas)) {
1319  return;
1320  }
1321 
1322  $numberOfUserInteractions = count(array_filter($metas, function (BucketMeta $meta) {
1323  return $meta->getState() == State::USER_INTERACTION;
1324  }));
1325  $numberOfNotUserInteractions = count($metas) - $numberOfUserInteractions;
1326 
1327  $popover = $factory->popover()
1328  ->listing(array())
1329  ->withFixedPosition()
1330  ->withTitle($DIC->language()->txt("background_tasks_running")); // needs to have empty content
1331  $DIC->ctrl()->clearParametersByClass(ilBTControllerGUI::class);
1332  $DIC->ctrl()->setParameterByClass(
1333  ilBTControllerGUI::class,
1335  ilBTControllerGUI::hash("//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}")
1336  );
1337  $DIC->ctrl()->setParameterByClass(
1338  ilBTControllerGUI::class,
1340  $popover->getReplaceContentSignal()->getId()
1341  );
1342 
1343  $url = $DIC->ctrl()->getLinkTargetByClass([ ilBTControllerGUI::class ], ilBTControllerGUI::CMD_GET_POPOVER_CONTENT, "", true);
1344  $popover = $popover->withAsyncContentUrl($url);
1345 
1346  $glyph = $factory->glyph()
1347  ->briefcase()
1348  ->withOnClick($popover->getShowSignal())
1349  ->withCounter($factory->counter()->novelty($numberOfUserInteractions))
1350  ->withCounter($factory->counter()->status($numberOfNotUserInteractions));
1351 
1352  $main_tpl->addJavascript('./Services/BackgroundTasks/js/background_task_refresh.js');
1353 
1354  $this->tpl->setVariable(
1355  'BACKGROUNDTASKS',
1356  $DIC->ui()->renderer()->render([$glyph, $popover])
1357  );
1358 
1359  $this->tpl->setVariable('BACKGROUNDTASKS_REFRESH_URI', $url);
1360  }
global $DIC
Definition: saml.php:7
$factory
Definition: metadata.php:47
Create styles array
The data for the language used.
$url
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderDropDown()

ilMainMenuGUI::renderDropDown (   $a_tpl,
  $a_id 
)

GetDropDownHTML.

Parameters

Definition at line 942 of file class.ilMainMenuGUI.php.

References $id, $ilSetting, $lng, $settings, ilObjUserTracking\_enabledLearningProgress(), ilCalendarSettings\_getInstance(), ilBuddySystem\getInstance(), ilAdvancedSelectionListGUI\ICON_ARROW, and Monolog\Handler\mail().

Referenced by renderMainMenuListEntries().

943  {
944  $lng = $this->lng;
946 
947  $id = strtolower($a_id);
948  $a_tpl->setCurrentBlock("entry_" . $id);
949  include_once("./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
950  $selection = new ilAdvancedSelectionListGUI();
951  if ($this->active == $a_id || ($this->active == "" && $a_id == "repository")) {
952  $selection->setSelectionHeaderClass("MMActive");
953  $a_tpl->setVariable("SEL", '<span class="ilAccHidden">(' . $lng->txt("stat_selected") . ')</span>');
954  } else {
955  $selection->setSelectionHeaderClass("MMInactive");
956  }
957 
958  $selection->setSelectionHeaderSpanClass("MMSpan");
959 
960  $selection->setHeaderIcon(ilAdvancedSelectionListGUI::ICON_ARROW);
961  $selection->setItemLinkClass("small");
962  $selection->setUseImages(false);
963 
964  switch ($id) {
965  // desktop drop down
966  case "desktop":
967  $selection->setListTitle($lng->txt("personal_desktop"));
968  $selection->setId("dd_pd");
969 
970  // overview
971  $selection->addItem(
972  $lng->txt("overview"),
973  "",
974  "ilias.php?baseClass=ilPersonalDesktopGUI",
975  "",
976  "",
977  "_top"
978  );
979 
980  if (!$ilSetting->get("disable_personal_workspace")) {
981  // workspace
982  $selection->addItem(
983  $lng->txt("personal_workspace"),
984  "",
985  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToWorkspace",
986  "",
987  "",
988  "_top"
989  );
990  }
991 
992  // profile
993  $selection->addItem(
994  $lng->txt("personal_profile"),
995  "",
996  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToProfile",
997  "",
998  "",
999  "_top"
1000  );
1001 
1002  // skills
1003  $skmg_set = new ilSetting("skmg");
1004  if ($skmg_set->get("enable_skmg")) {
1005  $selection->addItem(
1006  $lng->txt("skills"),
1007  "",
1008  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToSkills",
1009  "",
1010  "",
1011  "_top"
1012  );
1013  }
1014 
1015  // portfolio
1016  if ($ilSetting->get('user_portfolios')) {
1017  $selection->addItem(
1018  $lng->txt("portfolio"),
1019  "",
1020  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToPortfolio",
1021  "",
1022  "",
1023  "_top"
1024  );
1025  }
1026 
1027  // news
1028  if ($ilSetting->get("block_activated_news")) {
1029  $selection->addItem(
1030  $lng->txt("news"),
1031  "",
1032  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToNews",
1033  "",
1034  "",
1035  "_top"
1036  );
1037  }
1038 
1039  // Learning Progress
1040  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
1042  //$ilTabs->addTarget("learning_progress", $this->ctrl->getLinkTargetByClass("ilLearningProgressGUI"));
1043  $selection->addItem(
1044  $lng->txt("learning_progress"),
1045  "",
1046  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToLP",
1047  "",
1048  "",
1049  "_top"
1050  );
1051  }
1052 
1053  // calendar
1054  include_once('./Services/Calendar/classes/class.ilCalendarSettings.php');
1056  if ($settings->isEnabled()) {
1057  $selection->addItem(
1058  $lng->txt("calendar"),
1059  "",
1060  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToCalendar",
1061  "",
1062  "",
1063  "_top"
1064  );
1065  }
1066 
1067  // mail
1068  if ($this->mail) {
1069  $selection->addItem($lng->txt('mail'), '', 'ilias.php?baseClass=ilMailGUI', '', '', '_top');
1070  }
1071 
1072  // contacts
1073  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
1074  if (ilBuddySystem::getInstance()->isEnabled()) {
1075  $selection->addItem($lng->txt('mail_addressbook'), '', 'ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToContacts', '', '', '_top');
1076  }
1077 
1078  // private notes
1079  if (!$ilSetting->get("disable_notes")) {
1080  $selection->addItem(
1081  $lng->txt("notes_and_comments"),
1082  "",
1083  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToNotes",
1084  "",
1085  "",
1086  "_top"
1087  );
1088  }
1089 
1090  // bookmarks
1091  if (!$ilSetting->get("disable_bookmarks")) {
1092  $selection->addItem(
1093  $lng->txt("bookmarks"),
1094  "",
1095  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToBookmarks",
1096  "",
1097  "",
1098  "_top"
1099  );
1100  }
1101 
1102  // settings
1103  $selection->addItem(
1104  $lng->txt("personal_settings"),
1105  "",
1106  "ilias.php?baseClass=ilPersonalDesktopGUI&amp;cmd=jumpToSettings",
1107  "",
1108  "",
1109  "_top"
1110  );
1111 
1112  break;
1113 
1114  // administration
1115  case "administration":
1116  $selection->setListTitle($lng->txt("administration"));
1117  $selection->setId("dd_adm");
1118  $selection->setAsynch(true);
1119  $selection->setAsynchUrl("ilias.php?baseClass=ilAdministrationGUI&cmd=getDropDown&cmdMode=asynch");
1120  break;
1121 
1122  }
1123 
1124  $a_tpl->setVariable("TXT_ADMINISTRATION", $lng->txt("administration"));
1125  $a_tpl->parseCurrentBlock();
1126  }
static _getInstance()
get singleton instance
if(!array_key_exists('StateId', $_REQUEST)) $id
mail($to, $subject, $message, $additional_headers=null, $additional_parameters=null)
static _enabledLearningProgress()
check wether learing progress is enabled or not
User interface class for advanced drop-down selection lists.
global $ilSetting
Definition: privfeed.php:17
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderEntry()

ilMainMenuGUI::renderEntry (   $a_tpl,
  $a_id,
  $a_txt,
  $a_script,
  $a_target = "_top" 
)

Render main menu entry.

Parameters

Definition at line 496 of file class.ilMainMenuGUI.php.

References $_GET, $ctrl, $GLOBALS, $id, $ilCtrl, $ilSetting, $lng, $nav_history, $settings, $t, ilObjUserTracking\_enabledLearningProgress(), ilObject\_getIcon(), ilCalendarSettings\_getInstance(), ilLink\_getStaticLink(), ilObjUserTracking\_hasLearningProgressLearner(), ilObjUserTracking\_hasLearningProgressOtherUsers(), ilObject\_lookupObjId(), ilPersonalDesktopGUI\CMD_JUMP_TO_MY_STAFF, ilMyStaffAccess\getInstance(), ilBuddySystem\getInstance(), ilBadgeHandler\getInstance(), ilAccessKey\getKey(), ilHelp\getMainMenuTooltip(), ilUtil\img(), ilAccessKey\LAST_VISITED, Monolog\Handler\mail(), ilAccessKey\PERSONAL_DESKTOP, ilUtil\shortenText(), and user().

Referenced by renderMainMenuListEntries().

497  {
498  $lng = $this->lng;
499  $ilNavigationHistory = $this->nav_history;
502 
503  $id = strtolower($a_id);
504  $id_up = strtoupper($a_id);
505  $a_tpl->setCurrentBlock("entry_" . $id);
506 
507  include_once("./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
508 
509  // repository
510  if ($a_id == "repository") {
511  $gl = new ilGroupedListGUI();
512  $gl->setAsDropDown(true);
513 
514  include_once("./Services/Link/classes/class.ilLink.php");
516 
517  $gl->addEntry(
518  $icon . " " . $a_txt . " - " . $lng->txt("rep_main_page"),
519  ilLink::_getStaticLink(1, 'root', true),
520  "_top"
521  );
522 
523  $items = $ilNavigationHistory->getItems();
524  reset($items);
525  $cnt = 0;
526  $first = true;
527 
528  foreach ($items as $k => $item) {
529  if ($cnt >= 10) {
530  break;
531  }
532 
533  if (!isset($item["ref_id"]) || !isset($_GET["ref_id"]) ||
534  ($item["ref_id"] != $_GET["ref_id"] || !$first)) { // do not list current item
535  if ($cnt == 0) {
536  $gl->addGroupHeader($lng->txt("last_visited"), "ilLVNavEnt");
537  }
538  $obj_id = ilObject::_lookupObjId($item["ref_id"]);
539  $cnt++;
540  $icon = ilUtil::img(ilObject::_getIcon($obj_id, "tiny"));
541  $ititle = ilUtil::shortenText(strip_tags($item["title"]), 50, true); // #11023
542  $gl->addEntry($icon . " " . $ititle, $item["link"], "_top", "", "ilLVNavEnt");
543  }
544  $first = false;
545  }
546 
547  if ($cnt > 0) {
548  $gl->addEntry(
549  "» " . $lng->txt("remove_entries"),
550  "#",
551  "",
552  "return il.MainMenu.removeLastVisitedItems('" .
553  $ilCtrl->getLinkTargetByClass("ilnavigationhistorygui", "removeEntries", "", true) . "');",
554  "ilLVNavEnt"
555  );
556  }
557 
558  $a_tpl->setVariable("REP_EN_OV", $gl->getHTML());
559  }
560 
561  // desktop
562  if ($a_id == "desktop") {
563  $gl = new ilGroupedListGUI();
564  $gl->setAsDropDown(true);
565 
566  // overview
567  $gl->addEntry(
568  $lng->txt("overview"),
569  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToSelectedItems",
570  "_top",
571  "",
572  "",
573  "mm_pd_sel_items",
574  ilHelp::getMainMenuTooltip("mm_pd_sel_items"),
575  "left center",
576  "right center",
577  false
578  );
579 
580  require_once 'Services/PersonalDesktop/ItemsBlock/classes/class.ilPDSelectedItemsBlockViewSettings.php';
581  $pdItemsViewSettings = new ilPDSelectedItemsBlockViewSettings($GLOBALS['DIC']->user());
582 
583  // my groups and courses, if both is available
584  if ($pdItemsViewSettings->allViewsEnabled()) {
585  $gl->addEntry(
586  $lng->txt("my_courses_groups"),
587  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToMemberships",
588  "_top",
589  "",
590  "",
591  "mm_pd_crs_grp",
592  ilHelp::getMainMenuTooltip("mm_pd_crs_grp"),
593  "left center",
594  "right center",
595  false
596  );
597  }
598 
599  // bookmarks
600  if (!$ilSetting->get("disable_bookmarks")) {
601  $gl->addEntry(
602  $lng->txt("bookmarks"),
603  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToBookmarks",
604  "_top",
605  "",
606  "",
607  "mm_pd_bookm",
608  ilHelp::getMainMenuTooltip("mm_pd_bookm"),
609  "left center",
610  "right center",
611  false
612  );
613  }
614 
615  // private notes
616  if (!$ilSetting->get("disable_notes") || !$ilSetting->get("disable_comments")) {
617  $lng->loadLanguageModule("notes");
618  $t = $lng->txt("notes");
619  $c = "jumpToNotes";
620  if (!$ilSetting->get("disable_notes") && !$ilSetting->get("disable_comments")) {
621  $t = $lng->txt("notes_and_comments");
622  }
623  if ($ilSetting->get("disable_notes")) {
624  $t = $lng->txt("notes_comments");
625  $c = "jumpToComments";
626  }
627  $gl->addEntry(
628  $t,
629  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=" . $c,
630  "_top",
631  "",
632  "",
633  "mm_pd_notes",
634  ilHelp::getMainMenuTooltip("mm_pd_notes"),
635  "left center",
636  "right center",
637  false
638  );
639  }
640 
641  // news
642  if ($ilSetting->get("block_activated_news")) {
643  $gl->addEntry(
644  $lng->txt("news"),
645  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToNews",
646  "_top",
647  "",
648  "",
649  "mm_pd_news",
650  ilHelp::getMainMenuTooltip("mm_pd_news"),
651  "left center",
652  "right center",
653  false
654  );
655  }
656 
657  // overview is always active
658  $gl->addSeparator();
659 
660  $separator = false;
661 
662  if ($ilSetting->get("enable_my_staff") and ilMyStaffAccess::getInstance()->hasCurrentUserAccessToMyStaff() == true) {
663  // my staff
664  $gl->addEntry(
665  $lng->txt("my_staff"),
666  "ilias.php?baseClass=" . ilPersonalDesktopGUI::class . "&cmd=" . ilPersonalDesktopGUI::CMD_JUMP_TO_MY_STAFF,
667  "_top",
668  "",
669  "",
670  "mm_pd_mst",
671  ilHelp::getMainMenuTooltip("mm_pd_mst"),
672  "left center",
673  "right center",
674  false
675  );
676  $separator = true;
677  }
678 
679  if (!$ilSetting->get("disable_personal_workspace")) {
680  // workspace
681  $gl->addEntry(
682  $lng->txt("personal_workspace"),
683  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToWorkspace",
684  "_top",
685  "",
686  "",
687  "mm_pd_wsp",
688  ilHelp::getMainMenuTooltip("mm_pd_wsp"),
689  "left center",
690  "right center",
691  false
692  );
693 
694  $separator = true;
695  }
696 
697 
698  // portfolio
699  if ($ilSetting->get('user_portfolios')) {
700  $gl->addEntry(
701  $lng->txt("portfolio"),
702  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToPortfolio",
703  "_top",
704  "",
705  "",
706  "mm_pd_port",
707  ilHelp::getMainMenuTooltip("mm_pd_port"),
708  "left center",
709  "right center",
710  false
711  );
712 
713  $separator = true;
714  }
715 
716  // skills
717  $skmg_set = new ilSetting("skmg");
718  if ($skmg_set->get("enable_skmg")) {
719  $gl->addEntry(
720  $lng->txt("skills"),
721  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToSkills",
722  "_top",
723  "",
724  "",
725  "mm_pd_skill",
726  ilHelp::getMainMenuTooltip("mm_pd_skill"),
727  "left center",
728  "right center",
729  false
730  );
731 
732  $separator = true;
733  }
734 
735  require_once 'Services/Badge/classes/class.ilBadgeHandler.php';
736  if (ilBadgeHandler::getInstance()->isActive()) {
737  $gl->addEntry(
738  $lng->txt('obj_bdga'),
739  'ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToBadges',
740  '_top'
741  ,
742  "",
743  "",
744  "mm_pd_contacts",
745  ilHelp::getMainMenuTooltip("mm_pd_badges"),
746  "left center",
747  "right center",
748  false
749  );
750 
751  $separator = true;
752  }
753 
754 
755  // Learning Progress
756  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
760  //$ilTabs->addTarget("learning_progress", $this->ctrl->getLinkTargetByClass("ilLearningProgressGUI"));
761  $gl->addEntry(
762  $lng->txt("learning_progress"),
763  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToLP",
764  "_top",
765  "",
766  "",
767  "mm_pd_lp",
768  ilHelp::getMainMenuTooltip("mm_pd_lp"),
769  "left center",
770  "right center",
771  false
772  );
773 
774  $separator = true;
775  }
776 
777  if ($separator) {
778  $gl->addSeparator();
779  }
780 
781  $separator = false;
782 
783  // calendar
784  include_once('./Services/Calendar/classes/class.ilCalendarSettings.php');
786  if ($settings->isEnabled()) {
787  $gl->addEntry(
788  $lng->txt("calendar"),
789  "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToCalendar",
790  "_top",
791  "",
792  "",
793  "mm_pd_cal",
794  ilHelp::getMainMenuTooltip("mm_pd_cal"),
795  "left center",
796  "right center",
797  false
798  );
799 
800  $separator = true;
801  }
802 
803  // mail
804  if ($this->mail) {
805  $gl->addEntry(
806  $lng->txt('mail'),
807  'ilias.php?baseClass=ilMailGUI',
808  '_top',
809  "",
810  "",
811  "mm_pd_mail",
812  ilHelp::getMainMenuTooltip("mm_pd_mail"),
813  "left center",
814  "right center",
815  false
816  );
817 
818  $separator = true;
819  }
820 
821  // contacts
822  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
823  if (ilBuddySystem::getInstance()->isEnabled()) {
824  $gl->addEntry(
825  $lng->txt('mail_addressbook'),
826  'ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToContacts',
827  '_top'
828  ,
829  "",
830  "",
831  "mm_pd_contacts",
832  ilHelp::getMainMenuTooltip("mm_pd_contacts"),
833  "left center",
834  "right center",
835  false
836  );
837 
838  $separator = true;
839  }
840 
841 
842  $a_tpl->setVariable("DESK_CONT_OV", $gl->getHTML());
843  }
844 
845  $a_tpl->setVariable("TXT_" . $id_up, $a_txt);
846  $a_tpl->setVariable("SCRIPT_" . $id_up, $a_script);
847  $a_tpl->setVariable("TARGET_" . $id_up, $a_target);
848  if ($this->active == $a_id || ($this->active == "" && $a_id == "repository")) {
849  $a_tpl->setVariable("SEL", '<span class="ilAccHidden">(' . $lng->txt("stat_selected") . ')</span>');
850  }
851 
852  if ($a_id == "repository") {
853  include_once("./Services/Accessibility/classes/class.ilAccessKey.php");
855  $a_tpl->setVariable("ACC_KEY_REPOSITORY", 'accesskey="' .
857  }
858  }
859  if ($a_id == "desktop") {
860  include_once("./Services/Accessibility/classes/class.ilAccessKey.php");
862  $a_tpl->setVariable("ACC_KEY_DESKTOP", 'accesskey="' .
864  }
865  }
866 
867 
868  $a_tpl->parseCurrentBlock();
869  }
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _getInstance()
get singleton instance
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
$_GET["client_id"]
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static getKey($a_func_id, $lang_key="0", $a_ignore_default=false)
Get single access key.
if(!array_key_exists('StateId', $_REQUEST)) $id
user()
Definition: user.php:4
mail($to, $subject, $message, $additional_headers=null, $additional_parameters=null)
global $ilCtrl
Definition: ilias.php:18
static _enabledLearningProgress()
check wether learing progress is enabled or not
Class ilPDSelectedItemsBlockViewSettings.
Grouped list GUI class.
static _lookupObjId($a_id)
static getMainMenuTooltip($a_item_id)
Get main menu tooltip.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
global $ilSetting
Definition: privfeed.php:17
static getInstance()
Constructor.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderHelpButtons()

ilMainMenuGUI::renderHelpButtons ( )

Render help button.

Parameters

Definition at line 1135 of file class.ilMainMenuGUI.php.

References $ctrl, $help, $ilCtrl, $ilSetting, $ilUser, $lng, $main_tpl, $settings, $tpl, $user, ilTooltipGUI\addTooltip(), defined, and getMode().

Referenced by setTemplateVars().

1136  {
1137  $ilHelp = $this->help;
1138  $lng = $this->lng;
1139  $ilCtrl = $this->ctrl;
1140  $tpl = $this->tpl;
1142  $ilUser = $this->user;
1144 
1145  // screen id
1146  if ((defined("OH_REF_ID") && OH_REF_ID > 0) || DEVMODE == 1) {
1147  if ($ilHelp->getScreenId() != "") {
1148  if ($this->getMode() == self::MODE_FULL) {
1149  $this->tpl->setCurrentBlock("screen_id");
1150  $this->tpl->setVariable("SCREEN_ID", $ilHelp->getScreenId());
1151  $this->tpl->parseCurrentBlock();
1152  }
1153  }
1154  }
1155 
1156  $help_active = false;
1157 
1158  include_once("./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
1159  $helpl = new ilGroupedListGUI();
1160  $helpl->setAsDropDown(true, true);
1161 
1162  if ($ilHelp->hasSections()) {
1163  $help_active = true;
1164 
1165  $lng->loadLanguageModule("help");
1166  //$this->tpl->setCurrentBlock("help_icon");
1167 
1168  // add javascript needed by help (to do: move to help class)
1169  $main_tpl->addJavascript("./Services/Help/js/ilHelp.js");
1170  include_once("./Services/Accordion/classes/class.ilAccordionGUI.php");
1171  $acc = new ilAccordionGUI();
1172  $acc->addJavascript($main_tpl);
1173  $acc->addCss();
1174 
1175  include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
1177  "help_tr",
1178  $lng->txt("help_open_online_help"),
1179  "",
1180  "bottom center",
1181  "top center",
1182  false
1183  );
1184  $helpl->addEntry("<span>&nbsp;</span> " . $lng->txt("help_topcis"), "#", "", "il.Help.listHelp(event, false);");
1185  }
1186 
1187  $module_id = (int) $ilSetting->get("help_module");
1188  if ((OH_REF_ID > 0 || $module_id > 0) && $ilUser->getLanguage() == "de" &&
1189  $ilSetting->get("help_mode") != "1") {
1190  $help_active = true;
1191 
1192  $lng->loadLanguageModule("help");
1193  $main_tpl->addJavascript("./Services/Help/js/ilHelp.js");
1194 
1195  include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
1197  "help_tt",
1198  $lng->txt("help_toggle_tooltips"),
1199  "",
1200  "bottom center",
1201  "top center",
1202  false
1203  );
1204  $helpl->addEntry('<span id="help_tt_switch_on" class="glyphicon glyphicon-ok"></span> ' . $lng->txt("help_tooltips"), "#", "", "return il.Help.switchTooltips(event);");
1205  }
1206 
1207  if ($help_active) {
1208  $this->tpl->setCurrentBlock("help");
1209  $this->tpl->setVariable("TXT_HELP", $lng->txt("help"));
1210  $this->tpl->setVariable("HELP_SELECT", $helpl->getHTML());
1211  $this->tpl->parseCurrentBlock();
1212 
1213  // always set ajax url
1214  $ts = $ilCtrl->getTargetScript();
1215  $ilCtrl->setTargetScript("ilias.php");
1216 
1217  $ilHelp->setCtrlPar();
1218  $this->main_tpl->addOnLoadCode("il.Help.setAjaxUrl('" .
1219  $ilCtrl->getLinkTargetByClass("ilhelpgui", "", "", true)
1220  . "');");
1221  $ilCtrl->setTargetScript($ts);
1222  }
1223  }
static addTooltip( $a_el_id, $a_text, $a_container="", $a_my="bottom center", $a_at="top center", $a_use_htmlspecialchars=true)
Adds a tooltip to an HTML element.
global $ilCtrl
Definition: ilias.php:18
Grouped list GUI class.
$ilUser
Definition: imgupload.php:18
global $ilSetting
Definition: privfeed.php:17
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27
Accordion user interface class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderMainMenuListEntries()

ilMainMenuGUI::renderMainMenuListEntries (   $a_tpl,
  $a_call_get = true 
)

desc

Parameters

Definition at line 443 of file class.ilMainMenuGUI.php.

References $access, $GLOBALS, $lng, $nd, $title, $tree, _checkAdministrationPermission(), renderDropDown(), and renderEntry().

Referenced by setTemplateVars().

444  {
445  $lng = $this->lng;
446  $tree = $this->tree;
447  $ilAccess = $this->access;
448 
449  // personal desktop
450  if ($GLOBALS['DIC']['ilUser']->getId() != ANONYMOUS_USER_ID) {
451  $this->renderEntry(
452  $a_tpl,
453  "desktop",
454  $lng->txt("personal_desktop"),
455  "#"
456  );
457  }
458 
459  // repository
460  if ($ilAccess->checkAccess('visible', '', ROOT_FOLDER_ID)) {
461  include_once('./Services/Link/classes/class.ilLink.php');
462  $nd = $tree->getNodeData(ROOT_FOLDER_ID);
463  $title = $nd["title"];
464  if ($title == "ILIAS") {
465  $title = $lng->txt("repository");
466  }
467  if ($GLOBALS['DIC']['ilUser']->getId() != ANONYMOUS_USER_ID) {
468  $this->renderEntry(
469  $a_tpl,
470  "repository",
471  $title,
472  "#"
473  );
474  }
475  }
476 
477 
478  // administration
480  $this->renderDropDown($a_tpl, "administration");
481  }
482 
483  if ($a_call_get) {
484  return $a_tpl->get();
485  }
486 
487  return "";
488  }
renderEntry($a_tpl, $a_id, $a_txt, $a_script, $a_target="_top")
Render main menu entry.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
$nd
Definition: error.php:10
renderDropDown($a_tpl, $a_id)
GetDropDownHTML.
static _checkAdministrationPermission()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderOnScreenChatMenu()

ilMainMenuGUI::renderOnScreenChatMenu ( )
protected

Definition at line 1244 of file class.ilMainMenuGUI.php.

Referenced by setTemplateVars().

1245  {
1246  require_once 'Services/OnScreenChat/classes/class.ilOnScreenChatMenuGUI.php';
1247 
1248  $menu = new ilOnScreenChatMenuGUI();
1249  $this->tpl->setVariable('ONSCREENCHAT', $menu->getMainMenuHTML());
1250  }
Class ilOnScreenChatMenuGUI.
+ Here is the caller graph for this function:

◆ renderOnScreenNotifications()

ilMainMenuGUI::renderOnScreenNotifications ( \ilObjUser  $user,
\ilTemplate  $mainTpl,
\ilLanguage  $lng 
)
protected
Parameters
\ilObjUser$user
\ilTemplate$mainTpl
\ilLanguage$lng

Definition at line 1268 of file class.ilMainMenuGUI.php.

References getMode(), and ilObjUser\isAnonymous().

Referenced by setTemplateVars().

1269  {
1270  if ($this->getMode() != self::MODE_TOPBAR_REDUCED && !$user->isAnonymous()) {
1271  $this->tpl->touchBlock('osd_container');
1272 
1273  require_once 'Services/Notifications/classes/class.ilNotificationOSDGUI.php';
1274  $osdGui = new ilNotificationOSDGUI($user, $mainTpl, $lng);
1275  $osdGui->render();
1276  }
1277  }
Class ilNotificationOSDGUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderStatusBox()

ilMainMenuGUI::renderStatusBox (   $a_tpl)

Render status box.

Definition at line 414 of file class.ilMainMenuGUI.php.

References $ilUser, $user, ilMailGlobalServices\getNumberOfNewMailsByUserId(), and Monolog\Handler\mail().

Referenced by setTemplateVars().

415  {
417  $ui_factory = $this->ui->factory();
418  $ui_renderer = $this->ui->renderer();
419 
420  if ($this->mail) {
422 
423  $a_tpl->setCurrentBlock('status_box');
424 
425  $glyph = $ui_factory->glyph()->mail("ilias.php?baseClass=ilMailGUI");
426 
427  if ($new_mails > 0) {
428  $glyph = $glyph->withCounter($ui_factory->counter()->novelty($new_mails));
429  }
430 
431  $a_tpl->setVariable('GLYPH', $ui_renderer->render($glyph));
432  $a_tpl->parseCurrentBlock();
433  }
434  }
mail($to, $subject, $message, $additional_headers=null, $additional_parameters=null)
$ilUser
Definition: imgupload.php:18
static getNumberOfNewMailsByUserId($usr_id)
Determines the number of new mails for the passed user id and stores this information in a local cach...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setActive()

ilMainMenuGUI::setActive (   $a_active)
Parameters
string$a_active"desktop"|"repository"|"search"|"mail"|"chat_invitation"|"administration"

Definition at line 179 of file class.ilMainMenuGUI.php.

180  {
181  $this->active = $a_active;
182  }

◆ setLoginTargetPar()

ilMainMenuGUI::setLoginTargetPar (   $a_val)

Set target parameter for login (public sector).

This is used by the main menu

Definition at line 188 of file class.ilMainMenuGUI.php.

189  {
190  $this->login_target_par = $a_val;
191  }

◆ setMode()

ilMainMenuGUI::setMode (   $a_value)

Definition at line 147 of file class.ilMainMenuGUI.php.

Referenced by LTI\ilMainMenuGUI\__construct(), __construct(), and initMemberView().

148  {
149  $this->mode = (int) $a_value;
150  }
+ Here is the caller graph for this function:

◆ setTemplateVars()

ilMainMenuGUI::setTemplateVars ( )

set all template variables (images, scripts, target frames, ...)

Definition at line 231 of file class.ilMainMenuGUI.php.

References $GLOBALS, $html, $ilUser, $lng, $main_tpl, $plugin_admin, $rbacsystem, $user, ilSearchSettings\_getSearchSettingRefId(), ilRegistrationSettings\_lookupRegistrationType(), array, ilTemplate\buildLoginTarget(), defined, getHeaderURL(), ilUtil\getImagePath(), getLoginTargetPar(), getMode(), ilUtil\getStyleSheetLocation(), IL_COMP_SERVICE, IL_REG_DISABLED, ilUtil\img(), populateWithBuddySystem(), populateWithOnScreenChat(), renderAwareness(), renderBackgroundTasks(), renderHelpButtons(), renderMainMenuListEntries(), renderOnScreenChatMenu(), renderOnScreenNotifications(), and renderStatusBox().

Referenced by getHTML().

232  {
234  $lng = $this->lng;
236  $ilPluginAdmin = $this->plugin_admin;
238 
239  if ($this->logo_only) {
240  $this->tpl->setVariable("HEADER_URL", $this->getHeaderURL());
241  $this->tpl->setVariable("HEADER_ICON", ilUtil::getImagePath("HeaderIcon.svg"));
242  $this->tpl->setVariable("HEADER_ICON_RESPONSIVE", ilUtil::getImagePath("HeaderIconResponsive.svg"));
243 
244  // #15759
245  include_once("./Modules/SystemFolder/classes/class.ilObjSystemFolder.php");
246  $header_top_title = ilObjSystemFolder::_getHeaderTitle();
247  if (trim($header_top_title) != "" && $this->tpl->blockExists("header_top_title")) {
248  $this->tpl->setCurrentBlock("header_top_title");
249  $this->tpl->setVariable("TXT_HEADER_TITLE", $header_top_title);
250  $this->tpl->parseCurrentBlock();
251  }
252 
253  return;
254  }
255 
256  // get user interface plugins
257  $pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "UIComponent", "uihk");
258 
259  if ($this->getMode() != self::MODE_TOPBAR_REDUCED &&
260  $this->getMode() != self::MODE_TOPBAR_MEMBERVIEW) {
261  // search
262  include_once 'Services/Search/classes/class.ilSearchSettings.php';
263  if ($rbacsystem->checkAccess('search', ilSearchSettings::_getSearchSettingRefId())) {
264  include_once './Services/Search/classes/class.ilMainMenuSearchGUI.php';
265  $main_search = new ilMainMenuSearchGUI();
266  $html = "";
267 
268  // user interface plugin slot + default rendering
269  include_once("./Services/UIComponent/classes/class.ilUIHookProcessor.php");
270  $uip = new ilUIHookProcessor(
271  "Services/MainMenu",
272  "main_menu_search",
273  array("main_menu_gui" => $this, "main_menu_search_gui" => $main_search)
274  );
275  if (!$uip->replaced()) {
276  $html = $main_search->getHTML();
277  }
278  $html = $uip->getHTML($html);
279 
280  if (strlen($html)) {
281  $this->tpl->setVariable('SEARCHBOX', $html);
282  }
283  }
284 
285  $this->renderStatusBox($this->tpl);
286 
287  // online help
288  $this->renderHelpButtons();
289 
290  $this->renderOnScreenChatMenu();
291  $this->populateWithBuddySystem();
292  $this->populateWithOnScreenChat();
293  $this->renderBackgroundTasks();
294  $this->renderAwareness();
295  }
296 
297  if ($this->getMode() == self::MODE_FULL) {
298  $mmle_html = "";
299 
300  // user interface plugin slot + default rendering
301  include_once("./Services/UIComponent/classes/class.ilUIHookProcessor.php");
302  $uip = new ilUIHookProcessor(
303  "Services/MainMenu",
304  "main_menu_list_entries",
305  array("main_menu_gui" => $this)
306  );
307  if (!$uip->replaced()) {
308  $mmle_tpl = new ilTemplate("tpl.main_menu_list_entries.html", true, true, "Services/MainMenu");
309  $mmle_html = $this->renderMainMenuListEntries($mmle_tpl);
310  }
311  $mmle_html = $uip->getHTML($mmle_html);
312 
313  $this->tpl->setVariable("MAIN_MENU_LIST_ENTRIES", $mmle_html);
314  }
315 
316  if ($this->getMode() != self::MODE_TOPBAR_MEMBERVIEW) {
317  $link_dir = (defined("ILIAS_MODULE"))
318  ? "../"
319  : "";
320 
321  // login stuff
322  if ($GLOBALS['DIC']['ilUser']->getId() == ANONYMOUS_USER_ID) {
323  include_once 'Services/Registration/classes/class.ilRegistrationSettingsGUI.php';
325  $this->tpl->setCurrentBlock("registration_link");
326  $this->tpl->setVariable("TXT_REGISTER", $lng->txt("register"));
327  $this->tpl->setVariable("LINK_REGISTER", $link_dir . "register.php?client_id=" . rawurlencode(CLIENT_ID) . "&lang=" . $ilUser->getCurrentLanguage());
328  $this->tpl->parseCurrentBlock();
329  }
330 
331  // language selection
332  $selection = self::getLanguageSelection();
333  if ($selection) {
334  $this->tpl->setVariable("TXT_LANGSELECT", $lng->txt("language"));
335  $this->tpl->setVariable("LANG_SELECT", $selection);
336  }
337 
338  $this->tpl->setCurrentBlock("userisanonymous");
339  $this->tpl->setVariable("TXT_NOT_LOGGED_IN", $lng->txt("not_logged_in"));
340  $this->tpl->setVariable("TXT_LOGIN", $lng->txt("log_in"));
341 
342  // #13058
343  $target_str = ($this->getLoginTargetPar() != "")
344  ? $this->getLoginTargetPar()
346  $this->tpl->setVariable(
347  "LINK_LOGIN",
348  $link_dir . "login.php?target=" . $target_str . "&client_id=" . rawurlencode(CLIENT_ID) . "&cmd=force_login&lang=" . $ilUser->getCurrentLanguage()
349  );
350  $this->tpl->parseCurrentBlock();
351  } else {
353 
354  $this->tpl->setCurrentBlock("userisloggedin");
355  $this->tpl->setVariable("TXT_LOGIN_AS", $lng->txt("login_as"));
356  $user_img_src = $ilUser->getPersonalPicturePath("small", true);
357  $user_img_alt = $ilUser->getFullname();
358  $this->tpl->setVariable("USER_IMG", ilUtil::img($user_img_src, $user_img_alt));
359  $this->tpl->setVariable("USR_LINK_PROFILE", "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToProfile");
360  $this->tpl->setVariable("USR_TXT_PROFILE", $lng->txt("personal_profile"));
361  $this->tpl->setVariable("USR_LINK_SETTINGS", "ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToSettings");
362  $this->tpl->setVariable("USR_TXT_SETTINGS", $lng->txt("personal_settings"));
363  $this->tpl->setVariable("TXT_LOGOUT2", $lng->txt("logout"));
364  $this->tpl->setVariable("LINK_LOGOUT2", $link_dir . "logout.php?lang=" . $ilUser->getCurrentLanguage());
365  $this->tpl->setVariable("USERNAME", $ilUser->getFullname());
366  $this->tpl->setVariable("LOGIN", $ilUser->getLogin());
367  $this->tpl->setVariable("MATRICULATION", $ilUser->getMatriculation());
368  $this->tpl->setVariable("EMAIL", $ilUser->getEmail());
369  $this->tpl->parseCurrentBlock();
370  }
371  } else {
372  // member view info
373  $this->tpl->setVariable("TOPBAR_CLASS", " ilMemberViewMainHeader");
374  $this->tpl->setVariable("MEMBER_VIEW_INFO", $lng->txt("mem_view_long"));
375  }
376 
377  if (!$this->topbar_back_url) {
378  include_once("./Modules/SystemFolder/classes/class.ilObjSystemFolder.php");
379  $header_top_title = ilObjSystemFolder::_getHeaderTitle();
380  if (trim($header_top_title) != "" && $this->tpl->blockExists("header_top_title")) {
381  $this->tpl->setCurrentBlock("header_top_title");
382  // php7-workaround alex: added phpversion() to help during development of php7 compatibility
383  $this->tpl->setVariable("TXT_HEADER_TITLE", $header_top_title);
384  $this->tpl->parseCurrentBlock();
385  }
386  } else {
387  $this->tpl->setCurrentBlock("header_back_bl");
388  $this->tpl->setVariable("URL_HEADER_BACK", $this->topbar_back_url);
389  $this->tpl->setVariable("TXT_HEADER_BACK", $this->topbar_back_caption
390  ? $this->topbar_back_caption
391  : $lng->txt("back"));
392  $this->tpl->parseCurrentBlock();
393  }
394 
395  $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
396 
397  if ($this->getMode() == self::MODE_FULL) {
398  // $this->tpl->setVariable("TXT_LOGOUT", $lng->txt("logout"));
399  $this->tpl->setVariable("HEADER_URL", $this->getHeaderURL());
400  $this->tpl->setVariable("HEADER_ICON", ilUtil::getImagePath("HeaderIcon.svg"));
401  $this->tpl->setVariable("HEADER_ICON_RESPONSIVE", ilUtil::getImagePath("HeaderIconResponsive.svg"));
402  }
403 
404  include_once("./Modules/SystemFolder/classes/class.ilObjSystemFolder.php");
405 
406  $this->tpl->setVariable("TXT_MAIN_MENU", $lng->txt("main_menu"));
407 
408  $this->tpl->parseCurrentBlock();
409  }
static buildLoginTarget()
Add current object (repository/workspace) as target for login url.
renderOnScreenNotifications(\ilObjUser $user, \ilTemplate $mainTpl, \ilLanguage $lng)
getLoginTargetPar()
Get target parameter for login.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
renderHelpButtons()
Render help button.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
populateWithBuddySystem()
Includes all buddy system/user connections related javascript code.
renderAwareness()
Render awareness tool.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
static _getSearchSettingRefId()
Read the ref_id of Search Settings object.
$ilUser
Definition: imgupload.php:18
renderMainMenuListEntries($a_tpl, $a_call_get=true)
desc
Create styles array
The data for the language used.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
renderStatusBox($a_tpl)
Render status box.
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27
$html
Definition: example_001.php:87
const IL_COMP_SERVICE
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setTopBarBack()

ilMainMenuGUI::setTopBarBack (   $a_url,
  $a_caption = null 
)

Definition at line 157 of file class.ilMainMenuGUI.php.

Referenced by initMemberView().

158  {
159  $this->topbar_back_url = $a_url;
160  $this->topbar_back_caption = trim($a_caption);
161  }
+ Here is the caller graph for this function:

◆ showLogoOnly()

ilMainMenuGUI::showLogoOnly (   $a_value)

Toggle rendering of main menu, search, user info.

See also
ilImprintGUI
Parameters
bool$a_value

Definition at line 1287 of file class.ilMainMenuGUI.php.

1288  {
1289  $this->logo_only = (bool) $a_value;
1290  }

Field Documentation

◆ $access

ilMainMenuGUI::$access
protected

Definition at line 47 of file class.ilMainMenuGUI.php.

Referenced by renderMainMenuListEntries().

◆ $ctrl

ilMainMenuGUI::$ctrl
protected

Definition at line 62 of file class.ilMainMenuGUI.php.

Referenced by renderEntry(), and renderHelpButtons().

◆ $help

ilMainMenuGUI::$help
protected

Definition at line 67 of file class.ilMainMenuGUI.php.

Referenced by renderHelpButtons().

◆ $lng

◆ $mail

ilMainMenuGUI::$mail

Definition at line 76 of file class.ilMainMenuGUI.php.

◆ $main_tpl

ilMainMenuGUI::$main_tpl
protected

◆ $mode

ilMainMenuGUI::$mode
protected

Definition at line 83 of file class.ilMainMenuGUI.php.

Referenced by getMode().

◆ $nav_history

ilMainMenuGUI::$nav_history
protected

Definition at line 52 of file class.ilMainMenuGUI.php.

Referenced by renderEntry().

◆ $plugin_admin

ilMainMenuGUI::$plugin_admin
protected

Definition at line 37 of file class.ilMainMenuGUI.php.

Referenced by setTemplateVars().

◆ $rbacsystem

◆ $settings

ilMainMenuGUI::$settings
protected

Definition at line 57 of file class.ilMainMenuGUI.php.

Referenced by renderDropDown(), renderEntry(), and renderHelpButtons().

◆ $start_template

ilMainMenuGUI::$start_template

Definition at line 75 of file class.ilMainMenuGUI.php.

◆ $target

ilMainMenuGUI::$target

Definition at line 74 of file class.ilMainMenuGUI.php.

◆ $topbar_back_caption

ilMainMenuGUI::$topbar_back_caption
protected

Definition at line 85 of file class.ilMainMenuGUI.php.

◆ $topbar_back_url

ilMainMenuGUI::$topbar_back_url
protected

Definition at line 84 of file class.ilMainMenuGUI.php.

◆ $tpl

ilMainMenuGUI::$tpl

Definition at line 72 of file class.ilMainMenuGUI.php.

Referenced by renderHelpButtons().

◆ $tree

ilMainMenuGUI::$tree
protected

◆ $user

ilMainMenuGUI::$user
protected

Definition at line 27 of file class.ilMainMenuGUI.php.

Referenced by renderHelpButtons(), renderStatusBox(), and setTemplateVars().

◆ MODE_FULL

const ilMainMenuGUI::MODE_FULL = 1

Definition at line 87 of file class.ilMainMenuGUI.php.

Referenced by ilPersonalWorkspaceGUI\executeCommand().

◆ MODE_TOPBAR_MEMBERVIEW

const ilMainMenuGUI::MODE_TOPBAR_MEMBERVIEW = 4

Definition at line 90 of file class.ilMainMenuGUI.php.

◆ MODE_TOPBAR_ONLY

const ilMainMenuGUI::MODE_TOPBAR_ONLY = 2

◆ MODE_TOPBAR_REDUCED

const ilMainMenuGUI::MODE_TOPBAR_REDUCED = 3

Definition at line 89 of file class.ilMainMenuGUI.php.

Referenced by ilTemplate\setLocator().


The documentation for this class was generated from the following file: