page-header.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <?php
  2. $new_user_msg_num = DB::selectCount("select count(*) from user_msg where receiver = '".Auth::id()."' and read_time is null");
  3. $new_system_msg_num = DB::selectCount("select count(*) from user_system_msg where receiver = '".Auth::id()."' and read_time is null");
  4. $new_msg_tot = $new_user_msg_num + $new_system_msg_num;
  5. if ($new_user_msg_num == 0) {
  6. $new_user_msg_num_html = '';
  7. } else {
  8. $new_user_msg_num_html = '<span class="badge badge-pill badge-secondary">'.$new_user_msg_num.'</span>';
  9. }
  10. if ($new_system_msg_num == 0) {
  11. $new_system_msg_num_html = '';
  12. } else {
  13. $new_system_msg_num_html = '<span class="badge badge-pill badge-secondary">'.$new_system_msg_num.'</span>';
  14. }
  15. if ($new_msg_tot == 0) {
  16. $new_msg_tot_html = '';
  17. } else {
  18. $new_msg_tot_html = '<sup><span class="badge badge-pill badge-secondary">'.$new_msg_tot.'</span></sup>';
  19. }
  20. if (!isset($PageMainTitle)) {
  21. $PageMainTitle = UOJConfig::$data['profile']['oj-name'];
  22. }
  23. if (!isset($PageMainTitleOnSmall)) {
  24. $PageMainTitleOnSmall = UOJConfig::$data['profile']['oj-name-short'];
  25. }
  26. if (!isset($ShowPageHeader)) {
  27. $ShowPageHeader = true;
  28. }
  29. ?>
  30. <!DOCTYPE html>
  31. <html lang="<?= UOJLocale::locale() ?>">
  32. <head>
  33. <meta charset="utf-8" />
  34. <meta name="viewport" content="width=device-width, initial-scale=1" />
  35. <?php if (isset($_GET['locale'])): ?>
  36. <meta name="robots" content="noindex, nofollow" />
  37. <?php endif ?>
  38. <title><?= isset($PageTitle) ? $PageTitle : UOJConfig::$data['profile']['oj-name-short'] ?> - <?= $PageMainTitle ?></title>
  39. <script type="text/javascript">uojHome = '<?= HTML::url('/') ?>'</script>
  40. <!-- Bootstrap core CSS -->
  41. <?= HTML::css_link('/css/bootstrap.min.css?v=2019.5.31') ?>
  42. <!-- Bootstrap Glyphicons CSS-->
  43. <?= HTML::css_link('/css/bootstrap-glyphicons.min.css?v=2019.5.31') ?>
  44. <!-- Custom styles for this template -->
  45. <?= HTML::css_link('/css/uoj-theme.css?v=2.3333') ?>
  46. <!-- jQuery (necessary for Bootstrap\'s JavaScript plugins) -->
  47. <?= HTML::js_src('/js/jquery.min.js') ?>
  48. <!-- jQuery autosize -->
  49. <?= HTML::js_src('/js/jquery.autosize.min.js') ?>
  50. <script type="text/javascript">
  51. $(document).ready(function() {
  52. $('textarea').autosize();
  53. });
  54. </script>
  55. <!-- jQuery cookie -->
  56. <?= HTML::js_src('/js/jquery.cookie.min.js') ?>
  57. <!-- jQuery modal -->
  58. <?= HTML::js_src('/js/jquery.modal.js') ?>
  59. <?php if (isset($REQUIRE_LIB['tagcanvas'])): ?>
  60. <!-- jQuery tag canvas -->
  61. <?= HTML::js_src('/js/jquery.tagcanvas.min.js') ?>
  62. <?php endif ?>
  63. <!-- Include all compiled plugins (below), or include individual files as needed -->
  64. <?= HTML::js_src('/js/popper.min.js?v=2019.5.31') ?>
  65. <?= HTML::js_src('/js/bootstrap.min.js?v=2019.5.31') ?>
  66. <!-- Color converter -->
  67. <?= HTML::js_src('/js/color-converter.min.js') ?>
  68. <!-- uoj -->
  69. <?= HTML::js_src('/js/uoj.js?v=2017.01.01') ?>
  70. <!-- readmore -->
  71. <?= HTML::js_src('/js/readmore/readmore.min.js') ?>
  72. <!-- LAB -->
  73. <?= HTML::js_src('/js/LAB.min.js') ?>
  74. <!-- favicon -->
  75. <link rel="shortcut icon" href="<?= HTML::url('/images/favicon.ico') ?>" />
  76. <?php if (isset($REQUIRE_LIB['blog-editor'])): ?>
  77. <!-- UOJ blog editor -->
  78. <?php $REQUIRE_LIB['jquery.hotkeys'] = '' ?>
  79. <?php $REQUIRE_LIB['switch'] = '' ?>
  80. <?= HTML::css_link('/js/codemirror/lib/codemirror.css') ?>
  81. <?= HTML::css_link('/css/blog-editor.css') ?>
  82. <?= HTML::js_src('/js/marked.js?v=2016.10.19') ?>
  83. <?= HTML::js_src('/js/blog-editor/blog-editor.js?v=2015.7.9') ?>
  84. <?= HTML::js_src('/js/codemirror/lib/codemirror.js') ?>
  85. <?= HTML::js_src('/js/codemirror/addon/mode/overlay.js') ?>
  86. <?= HTML::js_src('/js/codemirror/addon/selection/active-line.js') ?>
  87. <?= HTML::js_src('/js/codemirror/mode/xml/xml.js') ?>
  88. <?= HTML::js_src('/js/codemirror/mode/gfm/gfm.js') ?>
  89. <?= HTML::js_src('/js/codemirror/mode/markdown/markdown.js') ?>
  90. <?= HTML::js_src('/js/codemirror/mode/javascript/javascript.js') ?>
  91. <?= HTML::js_src('/js/codemirror/mode/css/css.js') ?>
  92. <?= HTML::js_src('/js/codemirror/mode/htmlmixed/htmlmixed.js') ?>
  93. <?= HTML::js_src('/js/codemirror/mode/clike/clike.js') ?>
  94. <?= HTML::js_src('/js/codemirror/mode/pascal/pascal.js') ?>
  95. <?php endif ?>
  96. <?php if (isset($REQUIRE_LIB['slide-editor'])): ?>
  97. <!-- UOJ slide editor -->
  98. <?= HTML::css_link('/js/codemirror/lib/codemirror.css') ?>
  99. <?= HTML::css_link('/css/slide-editor.css') ?>
  100. <?= HTML::js_src('/js/slide-editor/slide-editor.js') ?>
  101. <?= HTML::js_src('/js/codemirror/lib/codemirror.js') ?>
  102. <?= HTML::js_src('/js/codemirror/addon/mode/overlay.js') ?>
  103. <?= HTML::js_src('/js/codemirror/addon/selection/active-line.js') ?>
  104. <?php endif ?>
  105. <?php if (isset($REQUIRE_LIB['md5'])): ?>
  106. <!-- MD5 -->
  107. <?= HTML::js_src('/js/md5.min.js') ?>
  108. <?php endif ?>
  109. <?php if (isset($REQUIRE_LIB['dialog'])): ?>
  110. <!-- Bootstrap dialog -->
  111. <?= HTML::css_link('/css/bootstrap-dialog.min.css') ?>
  112. <?= HTML::js_src('/js/bootstrap-dialog.min.js') ?>
  113. <?php endif ?>
  114. <?php if (isset($REQUIRE_LIB['switch'])): ?>
  115. <!-- Bootstrap switch -->
  116. <?= HTML::css_link('/css/bootstrap-switch.min.css') ?>
  117. <?= HTML::js_src('/js/bootstrap-switch.min.js') ?>
  118. <?php endif ?>
  119. <?php if (isset($REQUIRE_LIB['mathjax'])): ?>
  120. <!-- MathJax -->
  121. <script type="text/x-mathjax-config">
  122. MathJax.Hub.Config({
  123. showProcessingMessages: false,
  124. tex2jax: {
  125. inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
  126. processEscapes:true
  127. },
  128. menuSettings: {
  129. zoom: "Hover"
  130. }
  131. });
  132. </script>
  133. <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML"></script>
  134. <?php endif ?>
  135. <?php if (isset($REQUIRE_LIB['jquery.form'])): ?>
  136. <!-- jquery form -->
  137. <?= HTML::js_src('/js/jquery.form.min.js') ?>
  138. <?php endif ?>
  139. <?php if (isset($REQUIRE_LIB['jquery.hotkeys'])): ?>
  140. <!-- jquery hotkeys -->
  141. <?= HTML::js_src('/js/jquery.hotkeys.js') ?>
  142. <?php endif ?>
  143. <?php if (isset($REQUIRE_LIB['flot'])): ?>
  144. <!-- flot -->
  145. <?= HTML::js_src('/js/jquery.flot.min.js') ?>
  146. <?= HTML::js_src('/js/jquery.flot.time.min.js') ?>
  147. <?= HTML::js_src('/js/jquery.flot.resize.min.js') ?>
  148. <?php
  149. $REQUIRE_LIB['colorhelpers'] = "";
  150. ?>
  151. <?php endif ?>
  152. <?php if (isset($REQUIRE_LIB['colorhelpers'])): ?>
  153. <!-- colorhelpers -->
  154. <?= HTML::js_src('/js/jquery.colorhelpers.min.js') ?>
  155. <?php endif ?>
  156. <?php if (isset($REQUIRE_LIB['morris'])): ?>
  157. <!-- morris -->
  158. <?= HTML::js_src('/js/morris.min.js') ?>
  159. <?= HTML::css_link('/css/morris.css') ?>
  160. <?php $REQUIRE_LIB['raphael'] = "" ?>
  161. <?php endif ?>
  162. <?php if (isset($REQUIRE_LIB['raphael'])): ?>
  163. <!-- raphael -->
  164. <?= HTML::js_src('/js/raphael.min.js') ?>
  165. <?php endif ?>
  166. <?php if (isset($REQUIRE_LIB['hljs'])): ?>
  167. <!-- hljs -->
  168. <?= HTML::css_link('/css/highlight_github.css') ?>
  169. <?= HTML::js_src('/js/highlight.min.js') ?>
  170. <script type="text/javascript">$(document).ready(function(){hljs.highlightAll()})</script>
  171. <?php endif ?>
  172. <?php if (isset($REQUIRE_LIB['ckeditor'])): ?>
  173. <!-- ckeditor -->
  174. <?= HTML::js_src('/js/ckeditor/ckeditor.js') ?>
  175. <?php endif ?>
  176. <?php if (isset($REQUIRE_LIB['dracula'])): ?>
  177. <!-- dracula.js -->
  178. <?= HTML::js_src('/js/dracula.min.js') ?>
  179. <?php endif ?>
  180. <?php if (isset($REQUIRE_LIB['base64'])): ?>
  181. <!-- base64.js -->
  182. <?= HTML::js_src('/js/base64.min.js') ?>
  183. <?php endif ?>
  184. <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  185. <!--[if lt IE 9]>
  186. <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  187. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  188. <![endif]-->
  189. <script type="text/javascript">
  190. before_window_unload_message = null;
  191. $(window).on('beforeunload', function() {
  192. if (before_window_unload_message !== null) {
  193. return before_window_unload_message;
  194. }
  195. });
  196. </script>
  197. <?php if (UOJConfig::$data['switch']['web-analytics']): ?>
  198. <script>var _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src = "//hm.baidu.com/hm.js?bbd5ae87bf89e087603a1988103688ff";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();</script>
  199. <?php endif ?>
  200. </head>
  201. <body role="document">
  202. <div class="container theme-showcase" role="main">
  203. <?php if ($ShowPageHeader): ?>
  204. <div>
  205. <ul class="nav nav-pills float-right" role="tablist">
  206. <?php if (Auth::check()): ?>
  207. <li class="nav-item dropdown">
  208. <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">
  209. <span class="uoj-username" data-rating="<?= Auth::user()['rating'] ?>" data-certs="<?= Auth::user()['certs'] ?>" data-link="0"><?= Auth::id() ?></span> <?= $new_msg_tot_html ?>
  210. </a>
  211. <ul class="dropdown-menu" role="menu">
  212. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/user/profile/' . Auth::id()) ?>"><?= UOJLocale::get('my profile') ?></a></li>
  213. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/user/msg') ?>"><?= UOJLocale::get('private message') ?>&nbsp;&nbsp;<?= $new_user_msg_num_html ?></a></li>
  214. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/user/system-msg') ?>"><?= UOJLocale::get('system message') ?>&nbsp;&nbsp;<?= $new_system_msg_num_html ?></a></li>
  215. <?php if (isSuperUser(Auth::user())): ?>
  216. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/super-manage') ?>"><?= UOJLocale::get('system manage') ?></a></li>
  217. <?php endif ?>
  218. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/groups-manage') ?>">组管理</a></li>
  219. <li role="presentation"><a class="dropdown-item" href="<?= HTML::url('/certs-manage') ?>">勋章管理</a></li>
  220. </ul>
  221. </li>
  222. <li class="nav-item" role="presentation"><a class="nav-link" href="<?= HTML::url('/logout?_token='.crsf_token()) ?>"><?= UOJLocale::get('logout') ?></a></li>
  223. <?php else: ?>
  224. <li class="nav-item" role="presentation"><a class="nav-link" href="<?= HTML::url('/login') ?>"><?= UOJLocale::get('login') ?></a></li>
  225. <li class="nav-item" role="presentation"><a class="nav-link" href="<?= HTML::url('/register') ?>"><?= UOJLocale::get('register') ?></a></li>
  226. <?php endif ?>
  227. </ul>
  228. <h1 class="d-none d-sm-block"><a href="<?= HTML::url('/') ?>"><img src="<?= HTML::url('/images/logo_small.png') ?>" alt="Logo" class="img-rounded" style="width:39px; height:39px;" /></a> <?= $PageMainTitle ?></h1>
  229. <h1 class="d-block d-sm-none"><?= $PageMainTitleOnSmall ?></h1>
  230. </div>
  231. <?php uojIncludeView($PageNav) ?>
  232. <?php endif ?>
  233. <div class="uoj-content">