| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2018-04-09 19:18:19 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* This Source Code Form is subject to the terms of the Mozilla Public | 
					
						
							|  |  |  |  * License, v. 2.0. If a copy of the MPL was not distributed with this | 
					
						
							|  |  |  |  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  | require_once __DIR__ . "/required.php"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ($_SESSION['loggedin'] != true) { | 
					
						
							|  |  |  |     header('Location: index.php'); | 
					
						
							|  |  |  |     die("Session expired.  Log in again to continue."); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require_once __DIR__ . "/pages.php"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $pageid = "home"; | 
					
						
							|  |  |  | if (!is_empty($_GET['page'])) { | 
					
						
							|  |  |  |     $pg = strtolower($_GET['page']); | 
					
						
							|  |  |  |     $pg = preg_replace('/[^0-9a-z_]/', "", $pg); | 
					
						
							|  |  |  |     if (array_key_exists($pg, PAGES) && file_exists(__DIR__ . "/pages/" . $pg . ".php")) { | 
					
						
							|  |  |  |         $pageid = $pg; | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         $pageid = "404"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-04-08 16:08:08 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | header("Link: <static/css/bootstrap.min.css>; rel=preload; as=style", false); | 
					
						
							|  |  |  | header("Link: <static/css/material-color/material-color.min.css>; rel=preload; as=style", false); | 
					
						
							|  |  |  | header("Link: <static/css/app.css>; rel=preload; as=style", false); | 
					
						
							| 
									
										
										
										
											2018-04-08 20:07:03 -06:00
										 |  |  | header("Link: <static/css/fa-svg-with-js.css>; rel=preload; as=style", false); | 
					
						
							|  |  |  | header("Link: <static/js/fontawesome-all.min.js>; rel=preload; as=script", false); | 
					
						
							| 
									
										
										
										
											2018-04-08 16:08:08 -06:00
										 |  |  | header("Link: <static/js/jquery-3.3.1.min.js>; rel=preload; as=script", false); | 
					
						
							|  |  |  | header("Link: <static/js/bootstrap.min.js>; rel=preload; as=script", false); | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  | ?>
 | 
					
						
							|  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |     <head> | 
					
						
							|  |  |  |         <meta charset="UTF-8"> | 
					
						
							|  |  |  |         <meta http-equiv="X-UA-Compatible" content="IE=edge"> | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |         <meta name="viewport" content="width=device-width, initial-scale=1"> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |         <title><?php echo SITE_TITLE; ?></title>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-16 14:36:03 -07:00
										 |  |  |         <link rel="icon" href="static/img/logo.svg"> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |         <link href="static/css/bootstrap.min.css" rel="stylesheet"> | 
					
						
							| 
									
										
										
										
											2017-11-07 15:21:14 -07:00
										 |  |  |         <link href="static/css/material-color/material-color.min.css" rel="stylesheet"> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |         <link href="static/css/app.css" rel="stylesheet"> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |         <link href="static/css/fa-svg-with-js.css" rel="stylesheet"> | 
					
						
							|  |  |  |         <script nonce="<?php echo $SECURE_NONCE; ?>"> | 
					
						
							|  |  |  |             FontAwesomeConfig = {autoAddCss: false} | 
					
						
							|  |  |  |         </script> | 
					
						
							|  |  |  |         <script src="static/js/fontawesome-all.min.js"></script> | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |         <?php | 
					
						
							|  |  |  |         // custom page styles
 | 
					
						
							|  |  |  |         if (isset(PAGES[$pageid]['styles'])) { | 
					
						
							|  |  |  |             foreach (PAGES[$pageid]['styles'] as $style) { | 
					
						
							|  |  |  |                 echo "<link href=\"$style\" rel=\"stylesheet\">\n"; | 
					
						
							| 
									
										
										
										
											2018-04-08 16:08:08 -06:00
										 |  |  |                 header("Link: <$style>; rel=preload; as=style", false); | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         ?>
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |     </head> | 
					
						
							|  |  |  |     <body> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         <?php | 
					
						
							|  |  |  | // Alert messages
 | 
					
						
							|  |  |  |         if (!is_empty($_GET['msg']) && array_key_exists($_GET['msg'], MESSAGES)) { | 
					
						
							|  |  |  |             // optional string generation argument
 | 
					
						
							|  |  |  |             if (is_empty($_GET['arg'])) { | 
					
						
							|  |  |  |                 $alertmsg = lang(MESSAGES[$_GET['msg']]['string'], false); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 $alertmsg = lang2(MESSAGES[$_GET['msg']]['string'], ["arg" => strip_tags($_GET['arg'])], false); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             $alerttype = MESSAGES[$_GET['msg']]['type']; | 
					
						
							|  |  |  |             $alerticon = "square-o"; | 
					
						
							|  |  |  |             switch (MESSAGES[$_GET['msg']]['type']) { | 
					
						
							|  |  |  |                 case "danger": | 
					
						
							|  |  |  |                     $alerticon = "times"; | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 case "warning": | 
					
						
							|  |  |  |                     $alerticon = "exclamation-triangle"; | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 case "info": | 
					
						
							|  |  |  |                     $alerticon = "info-circle"; | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 case "success": | 
					
						
							|  |  |  |                     $alerticon = "check"; | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             echo <<<END | 
					
						
							|  |  |  |             <div class="row justify-content-center" id="msg-alert-box"> | 
					
						
							| 
									
										
										
										
											2018-01-27 22:06:53 -07:00
										 |  |  |                 <div class="col-11 col-sm-6 col-md-5 col-lg-4 col-xl-4"> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |                     <div class="alert alert-dismissible alert-$alerttype"> | 
					
						
							|  |  |  |                         <button type="button" class="close">×</button> | 
					
						
							|  |  |  |                         <i class="fas fa-$alerticon"></i> $alertmsg | 
					
						
							|  |  |  |                     </div> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |                 </div> | 
					
						
							|  |  |  |             </div> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  | END; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         <?php | 
					
						
							|  |  |  |         // Adjust as needed
 | 
					
						
							|  |  |  |         $navbar_breakpoint = "sm"; | 
					
						
							| 
									
										
										
										
											2018-01-27 22:04:01 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // For mobile app
 | 
					
						
							|  |  |  |         echo "<script nonce=\"$SECURE_NONCE\">var navbar_breakpoint = \"$navbar_breakpoint\";</script>"
 | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |         ?>
 | 
					
						
							| 
									
										
										
										
											2018-01-28 21:06:20 -07:00
										 |  |  |         <nav class="navbar navbar-expand-<?php echo $navbar_breakpoint; ?> navbar-dark bg-blue fixed-top"> | 
					
						
							| 
									
										
										
										
											2018-01-27 22:04:01 -07:00
										 |  |  |             <button class="navbar-toggler my-0 py-0" type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation"> | 
					
						
							|  |  |  |                 <!--<i class="fas fa-bars"></i>--> | 
					
						
							|  |  |  |                 <span class="navbar-toggler-icon"></span> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |             </button> | 
					
						
							|  |  |  |             <a class="navbar-brand py-0 mr-auto" href="app.php"> | 
					
						
							| 
									
										
										
										
											2018-01-27 22:38:33 -07:00
										 |  |  |                 <img src="static/img/logo.svg" alt="" class="d-none d-<?php echo $navbar_breakpoint; ?>-inline brand-img py-0" /> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |                 <?php echo SITE_TITLE; ?>
 | 
					
						
							|  |  |  |             </a> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-27 22:04:01 -07:00
										 |  |  |             <div class="collapse navbar-collapse py-0" id="navbar-collapse"> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |                 <div class="navbar-nav mr-auto py-0"> | 
					
						
							|  |  |  |                     <?php | 
					
						
							|  |  |  |                     $curpagefound = false; | 
					
						
							|  |  |  |                     foreach (PAGES as $id => $pg) { | 
					
						
							|  |  |  |                         if ($pg['navbar'] === TRUE) { | 
					
						
							|  |  |  |                             if ($pageid == $id) { | 
					
						
							|  |  |  |                                 $curpagefound = true; | 
					
						
							| 
									
										
										
										
											2017-04-25 18:22:27 -06:00
										 |  |  |                                 ?>
 | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |                                 <span class="nav-item py-<?php echo $navbar_breakpoint; ?>-0 active"> | 
					
						
							|  |  |  |                                     <?php | 
					
						
							|  |  |  |                                 } else { | 
					
						
							|  |  |  |                                     ?>
 | 
					
						
							|  |  |  |                                     <span class="nav-item py-<?php echo $navbar_breakpoint; ?>-0"> | 
					
						
							|  |  |  |                                         <?php | 
					
						
							|  |  |  |                                     } | 
					
						
							|  |  |  |                                     ?>
 | 
					
						
							|  |  |  |                                     <a class="nav-link py-<?php echo $navbar_breakpoint; ?>-0" href="app.php?page=<?php echo $id; ?>"> | 
					
						
							|  |  |  |                                         <?php | 
					
						
							|  |  |  |                                         if (isset($pg['icon'])) { | 
					
						
							|  |  |  |                                             ?><i class="<?php echo $pg['icon']; ?> fa-fw"></i> <?php
 | 
					
						
							|  |  |  |                                         } | 
					
						
							|  |  |  |                                         lang($pg['title']); | 
					
						
							|  |  |  |                                         ?>
 | 
					
						
							|  |  |  |                                     </a> | 
					
						
							|  |  |  |                                 </span> | 
					
						
							| 
									
										
										
										
											2017-04-25 18:22:27 -06:00
										 |  |  |                                 <?php | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                         ?>
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |                 </div> | 
					
						
							| 
									
										
										
										
											2018-01-27 22:04:01 -07:00
										 |  |  |                 <div class="navbar-nav ml-auto py-0" id="navbar-right"> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |                     <span class="nav-item py-<?php echo $navbar_breakpoint; ?>-0"> | 
					
						
							|  |  |  |                         <a class="nav-link py-<?php echo $navbar_breakpoint; ?>-0" href="<?php echo PORTAL_URL; ?>"> | 
					
						
							|  |  |  |                             <i class="fas fa-user fa-fw"></i><span> <?php echo $_SESSION['realname'] ?></span>
 | 
					
						
							|  |  |  |                         </a> | 
					
						
							|  |  |  |                     </span> | 
					
						
							|  |  |  |                     <span class="nav-item mr-auto py-<?php echo $navbar_breakpoint; ?>-0"> | 
					
						
							|  |  |  |                         <a class="nav-link py-<?php echo $navbar_breakpoint; ?>-0" href="action.php?action=signout"> | 
					
						
							|  |  |  |                             <i class="fas fa-sign-out-alt fa-fw"></i><span> <?php lang("sign out") ?></span>
 | 
					
						
							|  |  |  |                         </a> | 
					
						
							|  |  |  |                     </span> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |                 </div> | 
					
						
							|  |  |  |             </div> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |         </nav> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         <div class="container" id="main-content"> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |             <div> | 
					
						
							|  |  |  |                 <?php | 
					
						
							|  |  |  |                 include_once __DIR__ . '/pages/' . $pageid . ".php"; | 
					
						
							|  |  |  |                 ?>
 | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |             <div class="footer"> | 
					
						
							| 
									
										
										
										
											2017-12-16 13:48:24 -07:00
										 |  |  |                 <?php echo FOOTER_TEXT; ?><br />
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |                 Copyright © <?php echo date('Y'); ?> <?php echo COPYRIGHT_NAME; ?>
 | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  |         <script src="static/js/jquery-3.3.1.min.js"></script> | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |         <script src="static/js/bootstrap.min.js"></script> | 
					
						
							|  |  |  |         <script src="static/js/app.js"></script> | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |         <?php | 
					
						
							| 
									
										
										
										
											2018-01-27 19:18:38 -07:00
										 |  |  | // custom page scripts
 | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |         if (isset(PAGES[$pageid]['scripts'])) { | 
					
						
							|  |  |  |             foreach (PAGES[$pageid]['scripts'] as $script) { | 
					
						
							|  |  |  |                 echo "<script src=\"$script\"></script>\n";
 | 
					
						
							| 
									
										
										
										
											2018-04-08 16:08:08 -06:00
										 |  |  |                 header("Link: <$script>; rel=preload; as=script", false); | 
					
						
							| 
									
										
										
										
											2017-05-04 00:14:08 -06:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         ?>
 | 
					
						
							| 
									
										
										
										
											2017-04-24 17:13:08 -06:00
										 |  |  |     </body> | 
					
						
							|  |  |  | </html> |