1<?php 2$title=($cfg && is_object($cfg) && $cfg->getTitle()) 3 ? $cfg->getTitle() : 'osTicket :: '.__('Support Ticket System'); 4$signin_url = ROOT_PATH . "login.php" 5 . ($thisclient ? "?e=".urlencode($thisclient->getEmail()) : ""); 6$signout_url = ROOT_PATH . "logout.php?auth=".$ost->getLinkToken(); 7 8header("Content-Type: text/html; charset=UTF-8"); 9header("Content-Security-Policy: frame-ancestors ".$cfg->getAllowIframes().";"); 10 11if (($lang = Internationalization::getCurrentLanguage())) { 12 $langs = array_unique(array($lang, $cfg->getPrimaryLanguage())); 13 $langs = Internationalization::rfc1766($langs); 14 header("Content-Language: ".implode(', ', $langs)); 15} 16?> 17<!DOCTYPE html> 18<html<?php 19if ($lang 20 && ($info = Internationalization::getLanguageInfo($lang)) 21 && (@$info['direction'] == 'rtl')) 22 echo ' dir="rtl" class="rtl"'; 23if ($lang) { 24 echo ' lang="' . $lang . '"'; 25} 26 27// Dropped IE Support Warning 28if (osTicket::is_ie()) 29 $ost->setWarning(__('osTicket no longer supports Internet Explorer.')); 30?>> 31<head> 32 <meta charset="utf-8"> 33 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 34 <title><?php echo Format::htmlchars($title); ?></title> 35 <meta name="description" content="customer support platform"> 36 <meta name="keywords" content="osTicket, Customer support system, support ticket system"> 37 <meta name="viewport" content="width=device-width, initial-scale=1"> 38 <link rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/osticket.css?6bd7884" media="screen"/> 39 <link rel="stylesheet" href="<?php echo ASSETS_PATH; ?>css/theme.css?6bd7884" media="screen"/> 40 <link rel="stylesheet" href="<?php echo ASSETS_PATH; ?>css/print.css?6bd7884" media="print"/> 41 <link rel="stylesheet" href="<?php echo ROOT_PATH; ?>scp/css/typeahead.css?6bd7884" 42 media="screen" /> 43 <link type="text/css" href="<?php echo ROOT_PATH; ?>css/ui-lightness/jquery-ui-1.10.3.custom.min.css?6bd7884" 44 rel="stylesheet" media="screen" /> 45 <link rel="stylesheet" href="<?php echo ROOT_PATH ?>css/jquery-ui-timepicker-addon.css?6bd7884" media="all"/> 46 <link rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/thread.css?6bd7884" media="screen"/> 47 <link rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/redactor.css?6bd7884" media="screen"/> 48 <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/font-awesome.min.css?6bd7884"/> 49 <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/flags.css?6bd7884"/> 50 <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/rtl.css?6bd7884"/> 51 <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/select2.min.css?6bd7884"/> 52 <!-- Favicons --> 53 <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-32x32.png" sizes="32x32" /> 54 <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-16x16.png" sizes="16x16" /> 55 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-3.5.1.min.js?6bd7884"></script> 56 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-1.12.1.custom.min.js?6bd7884"></script> 57 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-timepicker-addon.js?6bd7884"></script> 58 <script src="<?php echo ROOT_PATH; ?>js/osticket.js?6bd7884"></script> 59 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/filedrop.field.js?6bd7884"></script> 60 <script src="<?php echo ROOT_PATH; ?>scp/js/bootstrap-typeahead.js?6bd7884"></script> 61 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/redactor.min.js?6bd7884"></script> 62 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/redactor-plugins.js?6bd7884"></script> 63 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/redactor-osticket.js?6bd7884"></script> 64 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/select2.min.js?6bd7884"></script> 65 <?php 66 if($ost && ($headers=$ost->getExtraHeaders())) { 67 echo "\n\t".implode("\n\t", $headers)."\n"; 68 } 69 70 // Offer alternate links for search engines 71 // @see https://support.google.com/webmasters/answer/189077?hl=en 72 if (($all_langs = Internationalization::getConfiguredSystemLanguages()) 73 && (count($all_langs) > 1) 74 ) { 75 $langs = Internationalization::rfc1766(array_keys($all_langs)); 76 $qs = array(); 77 parse_str($_SERVER['QUERY_STRING'], $qs); 78 foreach ($langs as $L) { 79 $qs['lang'] = $L; ?> 80 <link rel="alternate" href="//<?php echo $_SERVER['HTTP_HOST'] . htmlspecialchars($_SERVER['REQUEST_URI']); ?>?<?php 81 echo http_build_query($qs); ?>" hreflang="<?php echo $L; ?>" /> 82<?php 83 } ?> 84 <link rel="alternate" href="//<?php echo $_SERVER['HTTP_HOST'] . htmlspecialchars($_SERVER['REQUEST_URI']); ?>" 85 hreflang="x-default" /> 86<?php 87 } 88 ?> 89</head> 90<body> 91 <div id="container"> 92 <?php 93 if($ost->getError()) 94 echo sprintf('<div class="error_bar">%s</div>', $ost->getError()); 95 elseif($ost->getWarning()) 96 echo sprintf('<div class="warning_bar">%s</div>', $ost->getWarning()); 97 elseif($ost->getNotice()) 98 echo sprintf('<div class="notice_bar">%s</div>', $ost->getNotice()); 99 ?> 100 <div id="header"> 101 <div class="pull-right flush-right"> 102 <p> 103 <?php 104 if ($thisclient && is_object($thisclient) && $thisclient->isValid() 105 && !$thisclient->isGuest()) { 106 echo Format::htmlchars($thisclient->getName()).' |'; 107 ?> 108 <a href="<?php echo ROOT_PATH; ?>profile.php"><?php echo __('Profile'); ?></a> | 109 <a href="<?php echo ROOT_PATH; ?>tickets.php"><?php echo sprintf(__('Tickets <b>(%d)</b>'), $thisclient->getNumTickets()); ?></a> - 110 <a href="<?php echo $signout_url; ?>"><?php echo __('Sign Out'); ?></a> 111 <?php 112 } elseif($nav) { 113 if ($cfg->getClientRegistrationMode() == 'public') { ?> 114 <?php echo __('Guest User'); ?> | <?php 115 } 116 if ($thisclient && $thisclient->isValid() && $thisclient->isGuest()) { ?> 117 <a href="<?php echo $signout_url; ?>"><?php echo __('Sign Out'); ?></a><?php 118 } 119 elseif ($cfg->getClientRegistrationMode() != 'disabled') { ?> 120 <a href="<?php echo $signin_url; ?>"><?php echo __('Sign In'); ?></a> 121<?php 122 } 123 } ?> 124 </p> 125 <p> 126<?php 127if (($all_langs = Internationalization::getConfiguredSystemLanguages()) 128 && (count($all_langs) > 1) 129) { 130 $qs = array(); 131 parse_str($_SERVER['QUERY_STRING'], $qs); 132 foreach ($all_langs as $code=>$info) { 133 list($lang, $locale) = explode('_', $code); 134 $qs['lang'] = $code; 135?> 136 <a class="flag flag-<?php echo strtolower($info['flag'] ?: $locale ?: $lang); ?>" 137 href="?<?php echo http_build_query($qs); 138 ?>" title="<?php echo Internationalization::getLanguageDescription($code); ?>"> </a> 139<?php } 140} ?> 141 </p> 142 </div> 143 <a class="pull-left" id="logo" href="<?php echo ROOT_PATH; ?>index.php" 144 title="<?php echo __('Support Center'); ?>"> 145 <span class="valign-helper"></span> 146 <img src="<?php echo ROOT_PATH; ?>logo.php" border=0 alt="<?php 147 echo $ost->getConfig()->getTitle(); ?>"> 148 </a> 149 </div> 150 <div class="clear"></div> 151 <?php 152 if($nav){ ?> 153 <ul id="nav" class="flush-left"> 154 <?php 155 if($nav && ($navs=$nav->getNavLinks()) && is_array($navs)){ 156 foreach($navs as $name =>$nav) { 157 echo sprintf('<li><a class="%s %s" href="%s">%s</a></li>%s',$nav['active']?'active':'',$name,(ROOT_PATH.$nav['href']),$nav['desc'],"\n"); 158 } 159 } ?> 160 </ul> 161 <?php 162 }else{ ?> 163 <hr> 164 <?php 165 } ?> 166 <div id="content"> 167 168 <?php if($errors['err']) { ?> 169 <div id="msg_error"><?php echo $errors['err']; ?></div> 170 <?php }elseif($msg) { ?> 171 <div id="msg_notice"><?php echo $msg; ?></div> 172 <?php }elseif($warn) { ?> 173 <div id="msg_warning"><?php echo $warn; ?></div> 174 <?php } ?> 175