template.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. if (@include_once('/var/www/owa/owa_php.php')){
  3. $owa = new owa_php();
  4. $owa->setSiteId('9b272412f46481a3da3e555f88131db6');
  5. $owa->setPageTitle('{@Title}');
  6. $owa->trackPageView();
  7. }
  8. $angularSource="ajax.googleapis.com/ajax/libs/angularjs";
  9. $angularVersion="1.5.0";
  10. $this->RegisterJSFile("javascript.js");
  11. $this->RegisterJSFile("controllers/main.js");
  12. $this->RegisterJSFile("directives/equalHeightWidth.js");
  13. $this->RegisterJSFile("directives/scopeInit.js");
  14. function FormatURI(URI $uri, $base=""){
  15. $image=$uri->GetImage();
  16. $imageHTML="";
  17. if ($image!="")
  18. $imageHTML='<img src="'.$uri->GetImage().'" />';
  19. return '<a href="'.$base.$uri->GetLinkLocation().'">'.$imageHTML.$uri->GetText().'</a>';
  20. }
  21. ?>
  22. <?php
  23. {@Init}
  24. ?>
  25. <!DOCTYPE html>
  26. <html ng-app="robware">
  27. <head>
  28. <title>
  29. {@Title}<?php
  30. $__crumbs=Breadcrumbs::GetAll();
  31. foreach ($__crumbs as $crumb)
  32. echo ' &gt; ',$crumb['text'];
  33. ?> | Robware
  34. </title>
  35. <meta charset="UTF-8">
  36. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
  37. <link href="/css/style.css?t=<?= filemtime("css/style.css") ?>" rel="stylesheet" defer />
  38. <link href="/css/style-med.css?t=<?= filemtime("css/style-med.css") ?>" media="(max-width:1023px)" rel="stylesheet" defer />
  39. <link href="/css/style-small.css?t=<?= filemtime("css/style-small.css") ?>" media="(max-width:680px)" rel="stylesheet" defer />
  40. <?php foreach ($this->GetCSSFiles() as $css){
  41. echo '<link href="';
  42. if (strpos($css, "http")===false)
  43. echo '/css/',$css,'?t=', filemtime('css/'.$css);
  44. else
  45. echo $css;
  46. echo '" rel="stylesheet" defer />';
  47. }?>
  48. <style type="text/css">
  49. {@CSS}
  50. </style>
  51. <style media="(max-width:1023px)">
  52. {@CSSMed}
  53. </style>
  54. <style media="(max-width:680px)">
  55. {@CSSSmall}
  56. </style>
  57. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" defer></script>
  58. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js" defer></script>
  59. <script type="text/javascript" src="//<?=$angularSource?>/<?=$angularVersion?>/angular.js" defer></script>
  60. <script type="text/javascript" src="//<?=$angularSource?>/<?=$angularVersion?>/angular-animate.min.js" defer></script>
  61. <script type="text/javascript" defer>
  62. var owa_baseUrl = 'http://stats.robware.uk/';
  63. var owa_cmds = owa_cmds || [];
  64. owa_cmds.push(['setSiteId', '9b272412f46481a3da3e555f88131db6']);
  65. owa_cmds.push(['trackDomStream']);
  66. owa_cmds.push(['trackClicks']);
  67. </script>
  68. <script type="text/javascript" src="//stats.robware.uk/modules/base/js/owa.tracker-combined-min.js" defer> </script>
  69. <?php foreach ($this->GetJSFiles() as $js){
  70. echo '<script type="text/javascript" src="';
  71. if (strpos($js, "http")===false)
  72. echo '/scripts/',$js,'?t=', filemtime('scripts/'.$js);
  73. else
  74. echo $js;
  75. echo '" defer></script>';
  76. }?>
  77. <script type="text/javascript">
  78. {@JavaScript}
  79. </script>
  80. </head>
  81. <body ng-controller="main" ng-class="{scrollLock: (menuVisible && window.innerWidth < 1024) || spinnerVisible}">
  82. <div id="menu" ng-show="shouldShowMenu()">
  83. <div class="header">
  84. <img src="/images/logo.png" /><h1>Robware</h1>
  85. </div>
  86. <div id="nav-container">
  87. <nav>
  88. <dl>
  89. <?php
  90. $reqUri=trim($_SERVER['REQUEST_URI'],"/");
  91. $uriParts=explode("/",$reqUri);
  92. if ($uriParts[0]=="")
  93. $uriParts[0]="home";
  94. $__controllers=Navigation::Get();
  95. foreach ($__controllers as $controller){
  96. $cURI=$controller->GetURI();
  97. if ($cURI==null)
  98. continue;
  99. echo '<dt';
  100. if ($cURI->GetLinkLocation()=='/'.$uriParts[0])
  101. echo ' class="active"';
  102. echo'>',FormatURI($cURI);
  103. $items=$controller->GetItems();
  104. if (count($items)>0)
  105. echo '<span class="go">&raquo;</span><span class="expand">+</span>';
  106. echo '</dt>';
  107. if (count($items)>0){
  108. echo '<div class="sub-pages">';
  109. foreach ($items as $uri)
  110. echo '<dd>',FormatURI($uri,$cURI->GetLinkLocation().'/'),'</dd>';
  111. echo '</div>';
  112. }
  113. }
  114. ?>
  115. </dl>
  116. </nav>
  117. </div>
  118. </div>
  119. <div id="main">
  120. <div class="header">
  121. <img src="/images/menu.svg" id="menu-button" ng-click="menuVisible=!menuVisible" /><?php // using php tags to remove HTML space but to keep source tidy
  122. ?><h2><?php // Shitty, I know, but eh...
  123. ?><span>{@Title}</span><?php
  124. $__crumbs=Breadcrumbs::GetAll();
  125. foreach ($__crumbs as $crumb)
  126. echo '<span>',$crumb['text'],'</span>';
  127. ?></h2>
  128. </div>
  129. <?php if (isset($errors) && count($errors)>0){
  130. echo '<div class="errors">The following errors were encountered:<ul>';
  131. foreach ($errors as $e)
  132. echo '<li>',$e,'</li>';
  133. echo '</ul>Please rectify them and try again.</div>';
  134. } ?>
  135. <div class="errors" ng-if="errors.length>0">
  136. The following errors were encountered:
  137. <ul>
  138. <li ng-repeat="error in errors">{{error}}</li>
  139. </ul>
  140. Please rectify them and try again.
  141. </div>
  142. <div id="content">
  143. <div id="body">
  144. {@Body}
  145. </div>
  146. <div id="footer">{@Footer}</div>
  147. </div>
  148. <div id="buttons-left">{@ButtonsLeft}</div>
  149. <div id="buttons-right">{@ButtonsRight}</div>
  150. </div>
  151. <div class="backdrop" ng-show="shouldShowMenu()" ng-click="menuVisible=false"></div>
  152. <div id="spinner" class="backdrop" ng-show="spinnerVisible">
  153. <img src="/images/spinner.svg" />
  154. </div>
  155. </body>
  156. </html>