template.php 5.6 KB

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