error.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. $GLOBALS['organizrPages'][] = 'error';
  3. function get_page_error($Organizr)
  4. {
  5. if (!$Organizr) {
  6. $Organizr = new Organizr();
  7. }
  8. if ((!$Organizr->hasDB())) {
  9. return false;
  10. }
  11. $nonRoot = isset($_GET['organizr']);
  12. $nonRootPath = ($nonRoot) ? $Organizr->getRootPath() : '';
  13. $error = $_GET['vars']['var1'] ?? 404;
  14. $errorDetails = $Organizr->errorCodes($error);
  15. $redirect = $_GET['vars']['var2'] ?? null;
  16. if ($redirect) {
  17. $Organizr->logger->debug($redirect);
  18. }
  19. $GLOBALS['responseCode'] = 200;
  20. return '
  21. <!DOCTYPE html>
  22. <html lang="en">
  23. <head>
  24. <meta charset="utf-8">
  25. <meta content="IE=edge" http-equiv="X-UA-Compatible">
  26. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
  27. <meta content="' . $Organizr->config['description'] . '" name="description">
  28. <meta content="CauseFX" name="author">
  29. ' . $Organizr->favIcons($nonRootPath) . '
  30. <title>Error ' . $Organizr->config['title'] . '</title>
  31. ' . $Organizr->loadResources(
  32. [
  33. 'bootstrap/dist/css/bootstrap.min.css',
  34. 'css/animate.css',
  35. 'plugins/bower_components/overlayScrollbars/OverlayScrollbars.min.css',
  36. 'css/dark.min.css',
  37. 'css/organizr.min.css',
  38. 'js/jquery-2.2.4.min.js',
  39. 'js/jquery-lang.min.js'
  40. ], $nonRootPath
  41. ) . '
  42. ' . $Organizr->setTheme(null, $nonRootPath) . '
  43. <style id="user-appearance"></style>
  44. <style id="custom-theme-css"></style>
  45. <style id="custom-css"></style>
  46. <!--[if lt IE 9]>
  47. <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"
  48. integrity="sha384-0s5Pv64cNZJieYFkXYOTId2HMA2Lfb6q2nAcx2n0RTLUnCAoTTsS0nKEO27XyKcY"
  49. crossorigin="anonymous"></script>
  50. <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"
  51. integrity="sha384-ZoaMbDF+4LeFxg6WdScQ9nnR1QC2MIRxA1O9KWEXQwns1G8UNyIEZIQidzb0T1fo"
  52. crossorigin="anonymous"></script>
  53. <![endif]-->
  54. </head>
  55. <body class="fix-header">
  56. <!-- ============================================================== -->
  57. <!-- Preloader -->
  58. <!-- ==============================================================
  59. <div id="preloader" class="preloader">
  60. <svg class="circular" viewbox="25 25 50 50">
  61. <circle class="path" cx="50" cy="50" fill="none" r="20" stroke-miterlimit="10" stroke-width="10"></circle>
  62. </svg>
  63. </div>-->
  64. <!-- ============================================================== -->
  65. <!-- Wrapper -->
  66. <!-- ============================================================== -->
  67. <section id="wrapper">
  68. <div class="error-box">
  69. <div class="error-body text-center">
  70. <h1 class="text-danger">' . $error . '</h1>
  71. <h2 class="text-uppercase" lang="en">' . $errorDetails['type'] . '</h2>
  72. <h3 class="text-uppercase" lang="en">' . $errorDetails['description'] . '</h3>
  73. <p class="text-muted m-t-30 m-b-30">Hey there, ' . $Organizr->user['username'] . '. Looks like you tried accessing something that just ain\'t right! WTF right?! </p>
  74. <a href="' . $nonRootPath . '" class="btn btn-danger btn-rounded waves-effect waves-light m-b-40">Back Home</a>
  75. </div>
  76. </div>
  77. </section>
  78. <script>
  79. languageList = ' . $Organizr->languagePacks(true) . '
  80. var langStrings = { "token": {} };
  81. var lang = new Lang();
  82. loadLanguageList();
  83. lang.init({
  84. currentLang: (getCookie("organizrLanguage")) ? getCookie("organizrLanguage") : "en",
  85. cookie: {
  86. name: "organizrLanguage",
  87. expiry: 365,
  88. path: "/"
  89. },
  90. allowCookieOverride: true
  91. });
  92. $.urlParam = function(name){
  93. let results = new RegExp("[\?&]" + name + "=([^&#]*)").exec(window.location.href);
  94. if (results == null) {
  95. return null;
  96. } else {
  97. return decodeURI(results[1]) || 0;
  98. }
  99. };
  100. if ($.urlParam("return") !== null && "' . $Organizr->user['groupID'] . '" === "999") {
  101. local("set", "uri", $.urlParam("return"));
  102. }
  103. function localStorageSupport() {
  104. return (("localStorage" in window) && window["localStorage"] !== null)
  105. }
  106. function local(type,key,value=null){
  107. if (localStorageSupport) {
  108. switch (type) {
  109. case "set":
  110. case "s":
  111. localStorage.setItem(key,value);
  112. break;
  113. case "get":
  114. case "g":
  115. return localStorage.getItem(key);
  116. break;
  117. case "remove":
  118. case "r":
  119. localStorage.removeItem(key);
  120. break;
  121. }
  122. }
  123. }
  124. function loadLanguageList(){
  125. $.each(languageList, function(i,v) {
  126. lang.dynamic(v.code, "' . $nonRootPath . 'js/langpack/"+v.filename);
  127. });
  128. }
  129. function getCookie(cname) {
  130. var name = cname + "=";
  131. var decodedCookie = decodeURIComponent(document.cookie);
  132. var ca = decodedCookie.split(";");
  133. for(var i = 0; i <ca.length; i++) {
  134. var c = ca[i];
  135. while (c.charAt(0) == " ") {
  136. c = c.substring(1);
  137. }
  138. if (c.indexOf(name) == 0) {
  139. return c.substring(name.length, c.length);
  140. }
  141. }
  142. return "";
  143. }
  144. </script>
  145. </body>
  146. </html>
  147. ';
  148. }