--- a/include/common-template.inc.php +++ b/include/common-template.inc.php @@ -23,43 +23,42 @@ $url.= "&guid=ON"; return str_replace("&", "&", $url); } - function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false, $datepicker = false) { -global $labsPath; + global $labsPath,$serviceAlertsEnabled; echo ' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> - <title>' . $pageTitle . '</title> - <meta name="google-site-verification" -content="-53T5Qn4TB_de1NyfR_ZZkEVdUNcNFSaYKSFkWKx-sY" /> - <link rel="stylesheet" href="'.$labsPath.'css/jquery-ui-1.8.12.custom.css" />'; +<meta name="viewport" content="width=device-width, initial-scale=1"> +<title>' . $pageTitle . '</title> + <meta name="google-site-verification" content="-53T5Qn4TB_de1NyfR_ZZkEVdUNcNFSaYKSFkWKx-sY" /> +<link rel="dns-prefetch" href="//code.jquery.com"> +<link rel="dns-prefetch" href="//ajax.googleapis.com"> + <link rel="stylesheet" href="' . $labsPath . 'css/jquery-ui-1.8.12.custom.css" />'; if (isDebugServer()) { - echo '<link rel="stylesheet" href="'.$labsPath.'css/jquery.mobile-1.0b1.css" /> - - <script type="text/javascript" src="'.$labsPath.'js/jquery-1.6.1.min.js"></script> - <script>$(document).bind("mobileinit", function(){ + $jqmcss = $labsPath . 'css/jquery.mobile-1.0b2.css'; + $jqjs = $labsPath . 'js/jquery-1.6.2.min.js'; + $jqmjs = $labsPath . 'js/jquery.mobile-1.0b2.js'; + } + else { + $jqmcss = "//code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.css"; + $jqjs = "//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"; + $jqmjs = "//code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.js"; + } + echo '<link rel="stylesheet" href="' . $jqmcss . '" /> + <script src="'.$jqjs.'"></script> + <script>$(document).bind("mobileinit", function(){ $.mobile.ajaxEnabled = false; }); -</script> - <script type="text/javascript" src="'.$labsPath.'js/jquery.mobile-1.0b1.js"></script>'; - } - else { - echo '<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" /> - <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> - <script>$(document).bind("mobileinit", function(){ - $.mobile.ajaxEnabled = false; -}); -</script> - <script type="text/javascript" src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>'; - } - echo ' - <script src="'.$labsPath.'js/jquery.ui.autocomplete.min.js"></script> -<script src="'.$labsPath.'js/jquery.ui.core.min.js"></script> -<script src="'.$labsPath.'js/jquery.ui.position.min.js"></script> -<script src="'.$labsPath.'js/jquery.ui.widget.min.js"></script> +</script> + <script src="'.$jqmjs.'"></script> + +<script src="' . $labsPath . 'js/jquery.ui.core.min.js"></script> +<script src="' . $labsPath . 'js/jquery.ui.position.min.js"></script> +<script src="' . $labsPath . 'js/jquery.ui.widget.min.js"></script> + <script src="' . $labsPath . 'js/jquery.ui.autocomplete.min.js"></script> <script> $(function() { $( "#geolocate" ).autocomplete({ @@ -75,12 +74,9 @@ minLength: 2 }); }); - </script> - '; - echo '<style type="text/css"> -.ui-li-thumb, .ui-li-icon { position: relative; }'; - -if (strstr($_SERVER['HTTP_USER_AGENT'], 'Android')) echo '.ui-shadow,.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a,.ui-body-b,.ui-btn-up-b,.ui-btn-hover-b, + </script>'; + echo '<style type="text/css">'; + if (strstr($_SERVER['HTTP_USER_AGENT'], 'Android')) echo '.ui-shadow,.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a,.ui-body-b,.ui-btn-up-b,.ui-btn-hover-b, .ui-btn-down-b,.ui-bar-c,.ui-body-c,.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c,.ui-bar-c,.ui-body-d, .ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d,.ui-bar-d,.ui-body-e,.ui-btn-up-e,.ui-btn-hover-e, .ui-btn-down-e,.ui-bar-e,.ui-overlay-shadow,.ui-shadow,.ui-btn-active,.ui-body-a,.ui-bar-a { @@ -88,208 +84,8 @@ box-shadow: none; -webkit-box-shadow: none; }'; -echo ' - .ui-navbar { - width: 100%; - } - .ui-btn-inner { - white-space: normal !important; - } - .ui-li-heading { - white-space: normal !important; - } - .ui-listview-filter { - margin: 0 !important; - } - .ui-icon-navigation { - background-image: url('.$labsPath.'css/images/113-navigation.png); - background-position: 1px 0; - } - .ui-icon-beaker { - background-image: url('.$labsPath.'css/images/91-beaker-2.png); - background-position: 1px 0; - } - #footer { - text-size: 0.75em; - text-align: center; - } - body { - background-color: #F0F0F0; - } - #jqm-homeheader { - text-align: center; - } - .viaPoints { - display: none; - text-size: 0.2em; - } - .min-width-480px .viaPoints { - display: inline; - } - #extrainfo { - visibility: hidden; - display: none; - } - #servicewarning { - padding: 1em; - margin-bottom: 0.5em; - text-size: 0.2em; - background-color: #FF9; - -moz-border-radius: 15px; -border-radius: 15px; - } - - -#footer { -clear:both; -text-align:center; -} - // source http://webaim.org/techniques/skipnav/ - #skip a, #skip a:hover, #skip a:visited -{ -position:absolute; -left:0px; -top:-500px; -width:1px; -height:1px; -overflow:hidden; -} - -#skip a:active, #skip a:focus -{ -position:static; -width:auto; -height:auto; -} - - -// adaptive layout from jQuery Mobile docs site -.type-interior .content-secondary { - border-right: 0; - border-left: 0; - margin: 10px -15px 0; - background: #fff; - border-top: 1px solid #ccc; -} -.type-home .ui-content { - margin-top: 5px; -} -.type-interior .ui-content { - padding-bottom: 0; -} -.content-secondary .ui-collapsible-contain { - padding: 10px 15px; - -} -.content-secondary .ui-collapsible-heading { - margin: 0 0 30px; -} -.content-secondary .ui-collapsible-heading-collapsed, -.content-secondary .ui-collapsible-content { - padding:0; - margin: 0; -} -@media all and (min-width: 650px){ -.content-secondary { - text-align: left; - float: left; - width: 45%; - background: none; - border-top: 0; - } - .content-secondary, - .type-interior .content-secondary { - margin: 30px 0 20px 2%; - padding: 20px 4% 0 0; - background: none; - } - .type-index .content-secondary { - padding: 0; - } - .type-index .content-secondary .ui-listview { - margin: 0; - } - .content-primary { - width: 45%; - float: right; - margin-top: 30px; - margin-right: 1%; - padding-right: 1%; - } - .content-primary ul:first-child { - margin-top: 0; - } - - .type-interior .content-primary { - padding: 1.5em 6% 3em 0; - margin: 0; - } - /* fix up the collapsibles - expanded on desktop */ - .content-secondary .ui-collapsible-heading { - display: none; - } - .content-secondary .ui-collapsible-contain { - margin:0; - } - .content-secondary .ui-collapsible-content { - display: block; - margin: 0; - padding: 0; - } - .type-interior .content-secondary .ui-li-divider { - padding-top: 1em; - padding-bottom: 1em; - } - .type-interior .content-secondary { - margin: 0; - padding: 0; - } - -} -@media all and (min-width: 750px){ - .type-home .ui-content, - .type-interior .ui-content { - background-position: 39%; - } - .content-secondary { - width: 34%; - } - .content-primary { - width: 56%; - padding-right: 1%; - } - .type-interior .ui-content { - background-position: 34%; - } -} - -@media all and (min-width: 1200px){ - .type-home .ui-content{ - background-position: 38.5%; - } - .type-interior .ui-content { - background-position: 30%; - } - .content-secondary { - width: 30%; - padding-right:6%; - margin: 30px 0 20px 5%; - } - .type-interior .content-secondary { - margin: 0; - padding: 0; - } - .content-primary { - width: 50%; - margin-right: 5%; - padding-right: 3%; - } - .type-interior .content-primary { - width: 60%; - } -} - -</style>'; + echo '</style>'; + echo '<link rel="stylesheet" href="' . $labsPath . 'css/local.css.php" />'; if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPad')) { echo '<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> @@ -346,28 +142,33 @@ <div data-role="header" data-position="inline"> <a href="' . (isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "javascript:history.go(-1)") . '" data-icon="arrow-l" data-rel="back" class="ui-btn-left">Back</a> <h1>' . $pageTitle . '</h1> - <a href="'.$labsPath.'/index.php" data-icon="home" class="ui-btn-right">Home</a> + <a href="' . $labsPath . '/index.php" data-icon="home" class="ui-btn-right">Home</a> </div><!-- /header --> <a name="maincontent" id="maincontent"></a> <div data-role="content"> '; $overrides = getServiceOverride(); if ($overrides['service_id']) { - if ($overrides['service_id'] == "noservice") { - echo '<div id="servicewarning">Buses are <strong>not running today</strong> due to industrial action/public holiday. See <a + if ($overrides['service_id'] == "noservice") { + echo '<div id="servicewarning">Buses are <strong>not running today</strong> due to industrial action/public holiday. See <a href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>'; - } - else { - echo '<div id="servicewarning">Buses are running on an altered timetable today due to industrial action/public holiday. See <a href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>'; - } + } + else { + echo '<div id="servicewarning">Buses are running on an altered timetable today due to industrial action/public holiday. See <a href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>'; } } - + if ($GTFSREnabled) { + $serviceAlerts = getServiceAlertsAsArray("agency","0"); + foreach ($serviceAlerts['entity'] as $entity) { + echo "<div id='servicewarning'>".date("F j, g:i a",strtotime($entity['alert']['active_period'][0]['start']))." to ". date("F j, g:i a", strtotime($entity['alert']['active_period'][0]['end']))."{$entity['alert']['header_text']['translation'][0]['text']}<br>Warning: {$entity['alert']['description_text']['translation'][0]['text']} + <br><a href='{$entity['alert']['url']['translation'][0]['text']}'>Source</a> </div>"; + } + } + } } function include_footer() { - -global $labsPath; - echo '<div id="footer"><a href="'.$labsPath.'about.php">About/Contact Us</a> <a href="'.$labsPath.'feedback.php">Feedback/Bug Report</a> <a href="'.$labsPath.'privacy.php">Privacy Policy</a>'; + global $labsPath; + echo '<div id="footer"><a href="' . $labsPath . 'about.php">About/Contact Us</a> <a href="' . $labsPath . 'feedback.php">Feedback/Bug Report</a> <a href="' . $labsPath . 'privacy.php">Privacy Policy</a>'; echo '</div>'; if (isAnalyticsOn()) { echo "<script> (function() { @@ -380,17 +181,15 @@ })();</script>"; $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); echo '<noscript><img src="' . $googleAnalyticsImageUrl . '" /></noscript>'; - - } - echo "\n</div></div></body></html>"; -} -function timePlaceSettings($geolocate = false) + } + echo "\n</div></div></body></html>"; +} +function placeSettings() { global $service_periods; $geoerror = false; - if ($geolocate == true) { $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; - } + echo '<div id="error">'; if ($geoerror) { echo 'Sorry, but your location could not currently be detected. @@ -399,27 +198,13 @@ } echo '</div>'; echo '<div id="settings" data-role="collapsible" data-collapsed="' . !$geoerror . '"> - <h3>Change Time/Place (' . (isset($_SESSION['time']) ? $_SESSION['time'] : "Current Time,") . ' ' . ucwords(service_period()) . ')...</h3> + <h3>Change Location...</h3> <form action="' . basename($_SERVER['PHP_SELF']) . "?" . $_SERVER['QUERY_STRING'] . '" method="post"> <div class="ui-body"> <div data-role="fieldcontain"> <label for="geolocate"> Current Location: </label> <input type="text" id="geolocate" name="geolocate" value="' . (isset($_SESSION['lat']) && isset($_SESSION['lon']) ? $_SESSION['lat'] . "," . $_SESSION['lon'] : "Enter co-ordinates or address here") . '"/> <a href="#" style="display:none" name="here" id="here">Here?</a> </div> - <div data-role="fieldcontain"> - <label for="time"> Time: </label> - <input type="time" name="time" id="time" value="' . (isset($_SESSION['time']) ? $_SESSION['time'] : date("H:i")) . '"/> - <a href="#" name="currentTime" id="currentTime" onClick="var d = new Date();' . "$('#time').val(d.getHours() +':'+ (d.getMinutes().toString().length == 1 ? '0'+ d.getMinutes(): d.getMinutes()));" . '">Current Time?</a> - </div> - <div data-role="fieldcontain"> - <label for="service_period"> Service Period: </label> - <select name="service_period" id="service_period">'; - foreach ($service_periods as $service_period) { - echo "<option value=\"$service_period\"" . (service_period() === $service_period ? " SELECTED" : "") . '>' . ucwords($service_period) . '</option>'; - } - echo '</select> - <a href="#" style="display:none" name="currentPeriod" id="currentPeriod">Current Period?</a> - </div> <input type="submit" value="Update"/> </div></form>