diff options
Diffstat (limited to 'ui/app/partials/layout.htmlpage.header.php')
-rw-r--r-- | ui/app/partials/layout.htmlpage.header.php | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/ui/app/partials/layout.htmlpage.header.php b/ui/app/partials/layout.htmlpage.header.php index 5a343ccc248..fd124e61b49 100644 --- a/ui/app/partials/layout.htmlpage.header.php +++ b/ui/app/partials/layout.htmlpage.header.php @@ -26,7 +26,6 @@ global $DB, $ZBX_SERVER_NAME; -$theme = ZBX_DEFAULT_THEME; $scripts = $data['javascript']['files']; $page_title = $data['page']['title']; @@ -34,12 +33,11 @@ if (isset($ZBX_SERVER_NAME) && $ZBX_SERVER_NAME !== '') { $page_title = $ZBX_SERVER_NAME.NAME_DELIMITER.$page_title; } -$pageHeader = new CPageHeader($page_title, CWebUser::getLang()); +$page_header = new CHtmlPageHeader($page_title, CWebUser::getLang()); if (!empty($DB['DB'])) { - $theme = getUserTheme($data['user']); - - $pageHeader + $page_header + ->setTheme(getUserTheme($data['user'])) ->addStyle(getTriggerSeverityCss()) ->addStyle(getTriggerStatusCss()); @@ -50,16 +48,28 @@ if (!empty($DB['DB'])) { } // Show GUI messages in pages with menus and in kiosk mode. -$show_gui_messaging = (!defined('ZBX_PAGE_NO_MENU') || $data['web_layout_mode'] == ZBX_LAYOUT_KIOSKMODE) - ? intval(!CWebUser::isGuest()) +$show_gui_messaging = !defined('ZBX_PAGE_NO_MENU') || $data['web_layout_mode'] == ZBX_LAYOUT_KIOSKMODE + ? (int)!CWebUser::isGuest() : null; -$pageHeader - ->addCssFile('assets/styles/'.CHtml::encode($theme).'.css') - ->addJsBeforeScripts( - 'var PHP_TZ_OFFSET = '.date('Z').','. - 'PHP_ZBX_FULL_DATE_TIME = "'.ZBX_FULL_DATE_TIME.'";' - ) +$modules_assets = APP::ModuleManager()->getAssets(); + +$page_header->addCssFile('assets/styles/'.$page_header->getTheme().'.css'); + +foreach ($modules_assets as $module_id => $assets) { + $module = APP::ModuleManager()->getModule($module_id); + $relative_path = $module->getRelativePath().'/assets/css'; + + foreach ($assets['css'] as $css_file) { + $page_header->addCssFile((new CUrl($relative_path.'/'.$css_file))->getUrl()); + } +} + +$page_header + ->addJavaScript(' + const PHP_TZ_OFFSET = '.date('Z').'; + const PHP_ZBX_FULL_DATE_TIME = "'.ZBX_FULL_DATE_TIME.'"; + ') ->addJsFile((new CUrl('js/browsers.js'))->getUrl()) ->addJsFile((new CUrl('jsLoader.php')) ->setArgument('lang', $data['user']['lang']) @@ -69,18 +79,35 @@ $pageHeader ); foreach ($data['stylesheet']['files'] as $css_file) { - $pageHeader->addCssFile($css_file); + $page_header->addCssFile($css_file); } if ($scripts) { - $pageHeader->addJsFile((new CUrl('jsLoader.php')) - ->setArgument('ver', ZABBIX_VERSION) - ->setArgument('lang', $data['user']['lang']) - ->setArgument('files', $scripts) - ->getUrl() + $page_header->addJsFile( + (new CUrl('jsLoader.php')) + ->setArgument('ver', ZABBIX_VERSION) + ->setArgument('lang', $data['user']['lang']) + ->setArgument('files', $scripts) + ->getUrl() ); + + $page_header->addJavaScript('if (locale === undefined) { var locale = {}; }'); + + foreach ($modules_assets as $module_id => $assets) { + $module = APP::ModuleManager()->getModule($module_id); + $relative_path = $module->getRelativePath().'/assets/js'; + $translation_strings = $module->getTranslationStrings(); + + foreach ($assets['js'] as $js_file) { + $page_header->addJsFile((new CUrl($relative_path.'/'.$js_file))->getUrl()); + + if (array_key_exists($js_file, $translation_strings)) { + $page_header->addJsTranslationStrings($translation_strings[$js_file]); + } + } + } } -$pageHeader->display(); +$page_header->show(); echo '<body>'; |