template.php 5.8 KB

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