From: Maxious Date: Sun, 20 Mar 2011 07:01:45 +0000 Subject: Rearrange php libs/includes and produce sitemap.xml X-Git-Url: http://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=4a81b371796e10076ec36a737312a782a08ec1cf --- Rearrange php libs/includes and produce sitemap.xml --- --- a/about.php +++ b/about.php @@ -1,5 +1,5 @@

--- a/aws/awsStartup.sh +++ b/aws/awsStartup.sh @@ -7,8 +7,8 @@ cp /root/aws.php /tmp/ chcon -h system_u:object_r:httpd_sys_content_t /var/www chcon -R -h root:object_r:httpd_sys_content_t /var/www/* -chcon -R -t httpd_sys_content_rw_t /var/www/staticmaplite/cache -chmod -R 777 /var/www/staticmaplite/cache +chcon -R -t httpd_sys_content_rw_t /var/www/lib/staticmaplite/cache +chmod -R 777 /var/www/lib/staticmaplite/cache wget http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip \ -O /var/www/cbrfeed.zip easy_install transitfeed --- a/common-geo.inc.php +++ /dev/null @@ -1,149 +1,1 @@ - $mapPoint) { - $markers.= $mapPoint[0] . "," . $mapPoint[1] . "," . $markerImage . ($index + 1); - if ($index + 1 != sizeof($mapPoints)) $markers.= "|"; - if ($mapPoint[0] < $minlat) $minlat = $mapPoint[0]; - if ($mapPoint[0] > $maxlat) $maxlat = $mapPoint[0]; - if ($mapPoint[1] < $minlon) $minlon = $mapPoint[1]; - if ($mapPoint[1] > $maxlon) $maxlon = $mapPoint[1]; - $totalLat+= $mapPoint[0]; - $totalLon+= $mapPoint[1]; - } - if ($zoom == 0) { - $mapwidthinmeters = distance($minlat, $minlon, $minlat, $maxlon); - foreach (array_reverse($metersperpixel, true) as $zoomLevel => $maxdistance) { - if ($zoom == 0 && $mapwidthinmeters < ($maxdistance + 50)) $zoom = $zoomLevel; - } - } - $center = $totalLat / sizeof($mapPoints) . "," . $totalLon / sizeof($mapPoints); - } - $output = ""; - if ($collapsible) $output.= '

Open Map...

'; - $output.= '
'; - if ($collapsible) $output.= '
'; - return $output; -} -function distance($lat1, $lng1, $lat2, $lng2, $roundLargeValues = false) -{ - $pi80 = M_PI / 180; - $lat1*= $pi80; - $lng1*= $pi80; - $lat2*= $pi80; - $lng2*= $pi80; - $r = 6372.797; // mean radius of Earth in km - $dlat = $lat2 - $lat1; - $dlng = $lng2 - $lng1; - $a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2); - $c = 2 * atan2(sqrt($a) , sqrt(1 - $a)); - $km = $r * $c; - if ($roundLargeValues) { - if ($km < 1) return floor($km * 1000); - else return round($km,2)."k"; - } else return floor($km * 1000); -} -function decodePolylineToArray($encoded) -{ - // source: http://latlongeeks.com/forum/viewtopic.php?f=4&t=5 - $length = strlen($encoded); - $index = 0; - $points = array(); - $lat = 0; - $lng = 0; - while ($index < $length) { - // Temporary variable to hold each ASCII byte. - $b = 0; - // The encoded polyline consists of a latitude value followed by a - // longitude value. They should always come in pairs. Read the - // latitude value first. - $shift = 0; - $result = 0; - do { - // The `ord(substr($encoded, $index++))` statement returns the ASCII - // code for the character at $index. Subtract 63 to get the original - // value. (63 was added to ensure proper ASCII characters are displayed - // in the encoded polyline string, which is `human` readable) - $b = ord(substr($encoded, $index++)) - 63; - // AND the bits of the byte with 0x1f to get the original 5-bit `chunk. - // Then left shift the bits by the required amount, which increases - // by 5 bits each time. - // OR the value into $results, which sums up the individual 5-bit chunks - // into the original value. Since the 5-bit chunks were reversed in - // order during encoding, reading them in this way ensures proper - // summation. - $result|= ($b & 0x1f) << $shift; - $shift+= 5; - } - // Continue while the read byte is >= 0x20 since the last `chunk` - // was not OR'd with 0x20 during the conversion process. (Signals the end) - while ($b >= 0x20); - // Check if negative, and convert. (All negative values have the last bit - // set) - $dlat = (($result & 1) ? ~($result >> 1) : ($result >> 1)); - // Compute actual latitude since value is offset from previous value. - $lat+= $dlat; - // The next values will correspond to the longitude for this point. - $shift = 0; - $result = 0; - do { - $b = ord(substr($encoded, $index++)) - 63; - $result|= ($b & 0x1f) << $shift; - $shift+= 5; - } while ($b >= 0x20); - $dlng = (($result & 1) ? ~($result >> 1) : ($result >> 1)); - $lng+= $dlng; - // The actual latitude and longitude values were multiplied by - // 1e5 before encoding so that they could be converted to a 32-bit - // integer representation. (With a decimal accuracy of 5 places) - // Convert back to original values. - $points[] = array( - $lat * 1e-5, - $lng * 1e-5 - ); - } - return $points; -} -function geocode($query, $giveOptions) -{ - global $cloudmadeAPIkey; - $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?query=" . urlencode($query) . "&bbox=-35.5,149.00,-35.15,149.1930&return_location=true&bbox_only=true"; - $contents = json_decode(getPage($url)); - if ($giveOptions) return $contents->features; - elseif (isset($contents->features[0]->centroid)) return $contents->features[0]->centroid->coordinates[0] . "," . $contents->features[0]->centroid->coordinates[1]; - else return ""; -} -function reverseGeocode($lat, $lng) -{ - global $cloudmadeAPIkey; - $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?around=" . $lat . "," . $lng . "&distance=closest&object_type=road"; - $contents = json_decode(getPage($url)); - return $contents->features[0]->properties->name; -} -?> + --- a/common-net.inc.php +++ /dev/null @@ -1,23 +1,1 @@ - Database temporarily unavailable: " . curl_errno($ch) . " " . curl_error($ch) . "
"; - curl_close($ch); - debug(print_r($page,true),"json"); - return $page; -} -function curPageURL() -{ - $isHTTPS = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"); - $port = (isset($_SERVER["SERVER_PORT"]) && ((!$isHTTPS && $_SERVER["SERVER_PORT"] != "80") || ($isHTTPS && $_SERVER["SERVER_PORT"] != "443"))); - $port = ($port) ? ':' . $_SERVER["SERVER_PORT"] : ''; - $url = ($isHTTPS ? 'https://' : 'http://') . $_SERVER["SERVER_NAME"] . $port . htmlentities(dirname($_SERVER['PHP_SELF']) , ENT_QUOTES) . "/"; - return $url; -} -?> + --- a/common-template.inc.php +++ /dev/null @@ -1,223 +1,1 @@ - - - - - ' . $pageTitle . ' - '; - if ($datepicker) echo ''; - if (isDebugServer()) echo ' - - '; - else echo ' - - '; - if ($datepicker) echo ' - '; - echo ''; - if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod')) { - echo ' - - - '; - } - if ($geolocate) { - echo " "; - } - echo ' - - - - '; - if ($opendiv) { - echo '
- -
-

' . $pageTitle . '

-
- -
'; - } -} -function include_footer() -{ - if ($geolocate && isset($_SESSION['lat'])) { - echo ""; - } - echo ''; - if (!isDebug()) { - $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); - echo ''; - } -} -function timePlaceSettings($geolocate = false) -{ - global $service_periods; - $geoerror = false; - if ($geolocate == true) { - $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; - } - if ($geoerror) { - echo '
Sorry, but your location could not currently be detected. - Please allow location permission, wait for your location to be detected, - or enter an address/co-ordinates in the box below.
'; - } - echo '
-

Change Time/Place (' . (isset($_SESSION['time']) ? $_SESSION['time'] : "Current Time,") . ' ' . ucwords(service_period()) . ')...

-
-
-
- - -
-
- - Current Time? -
-
- - - -
- - - -
'; -} -?> - --- a/common-transit.inc.php +++ /dev/null @@ -1,73 +1,1 @@ - 0) { - $midnight = mktime(0, 0, 0, date("n") , date("j") , date("Y")); - return date("h:ia", $midnight + $seconds); - } - else { - return ""; - } -} -function viaPoints($tripid, $stopid, $timingPointsOnly = false) -{ - global $APIurl; - $url = $APIurl . "/json/tripstoptimes?trip=" . $tripid; - $json = json_decode(getPage($url)); - debug(print_r($json, true)); - $stops = $json[0]; - $times = $json[1]; - $foundStop = false; - $viaPoints = Array(); - foreach ($stops as $key => $row) { - if ($foundStop) { - if (!$timingPointsOnly || !startsWith($row[5], "Wj")) { - $viaPoints[] = Array( - "id" => $row[0], - "name" => $row[1], - "time" => $times[$key] - ); - } - } - else { - if ($row[0] == $stopid) $foundStop = true; - } - } - return $viaPoints; -} -function viaPointNames($tripid, $stopid) -{ - $points = viaPoints($tripid, $stopid, true); - $pointNames = Array(); - foreach ($points as $point) { - $pointNames[] = $point['name']; - } - return implode(", ", $pointNames); -} -?> + --- a/common.inc.php +++ /dev/null @@ -1,180 +1,1 @@ -centroid)) { - $geocoded = true; - $_SESSION['lat'] = $contents[0]->centroid->coordinates[0]; - $_SESSION['lon'] = $contents[0]->centroid->coordinates[1]; - } - else { - $_SESSION['lat'] = ""; - $_SESSION['lon'] = ""; - } - } - } -} -debug(print_r($_SESSION, true) , "session"); -function isDebugServer() -{ - return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; -} -function isDebug($debugReason = "other") -{ - global $debugOkay; - return in_array($debugReason, $debugOkay, false) && isDebugServer(); -} -function debug($msg, $debugReason = "other") -{ - if (isDebug($debugReason)) echo "\n\n"; -} -function isJQueryMobileDevice() -{ - // http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897 - $user_agent = $_SERVER['HTTP_USER_AGENT']; - return preg_match('/iphone/i', $user_agent) - || preg_match('/android/i', $user_agent) - || preg_match('/webos/i', $user_agent) - || preg_match('/ios/i', $user_agent) - || preg_match('/bada/i', $user_agent) - || preg_match('/maemo/i', $user_agent) - || preg_match('/meego/i', $user_agent) - || preg_match('/fennec/i', $user_agent) - || (preg_match('/symbian/i', $user_agent) - && preg_match('/s60/i', $user_agent) - && $browser['majorver'] >= 5) - || (preg_match('/symbian/i', $user_agent) - && preg_match('/platform/i', $user_agent) - && $browser['majorver'] >= 3) - || (preg_match('/blackberry/i', $user_agent) - && $browser['majorver'] >= 5) - || (preg_match('/opera mobile/i', $user_agent) - && $browser['majorver'] >= 10) - || (preg_match('/opera mini/i', $user_agent) - && $browser['majorver'] >= 5); -} -function isFastDevice() -{ - $ua = $_SERVER['HTTP_USER_AGENT']; - $fastDevices = Array( - "Mozilla/5.0 (X11;", - "Mozilla/5.0 (Windows;", - "Mozilla/5.0 (iP", - "Mozilla/5.0 (Linux; U; Android", - "Mozilla/4.0 (compatible; MSIE" - ); - $slowDevices = Array( - "J2ME", - "MIDP", - "Opera/", - "Mozilla/2.0 (compatible;", - "Mozilla/3.0 (compatible;" - ); - return true; -} -function array_flatten($a, $f = array()) -{ - if (!$a || !is_array($a)) return ''; - foreach ($a as $k => $v) { - if (is_array($v)) $f = array_flatten($v, $f); - else $f[$k] = $v; - } - return $f; -} -function remove_spaces($string) -{ - return str_replace(' ', '', $string); -} -function object2array($object) -{ - if (is_object($object)) { - foreach ($object as $key => $value) { - $array[$key] = $value; - } - } - else { - $array = $object; - } - return $array; -} -function startsWith($haystack, $needle, $case = true) -{ - if ($case) { - return (strcmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); - } - return (strcasecmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); -} -function endsWith($haystack, $needle, $case = true) -{ - if ($case) { - return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); - } - return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); -} -function bracketsMeanNewLine($input) -{ - return str_replace(")", "", str_replace("(", "
", $input)); -} -function sksort(&$array, $subkey = "id", $sort_ascending = false) -{ - if (count($array)) $temp_array[key($array) ] = array_shift($array); - foreach ($array as $key => $val) { - $offset = 0; - $found = false; - foreach ($temp_array as $tmp_key => $tmp_val) { - if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) { - $temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array( - $key => $val - ) , array_slice($temp_array, $offset)); - $found = true; - } - $offset++; - } - if (!$found) $temp_array = array_merge($temp_array, array( - $key => $val - )); - } - if ($sort_ascending) $array = array_reverse($temp_array); - else $array = $temp_array; -} -?> --- a/feedback.php +++ b/feedback.php @@ -1,11 +1,11 @@ verifyEmailAddress($address); @@ -40,12 +40,15 @@ Submit! + --- a/ga.php +++ /dev/null @@ -1,187 +1,1 @@ - array( - "method" => "GET", - "user_agent" => $_SERVER["HTTP_USER_AGENT"], - "header" => ("Accepts-Language: " . $_SERVER["HTTP_ACCEPT_LANGUAGE"])) - ); - if (!empty($_GET["utmdebug"])) { - $data = file_get_contents( - $utmUrl, false, stream_context_create($options)); - } else { - $data = @file_get_contents( - $utmUrl, false, stream_context_create($options)); - } - } - - // Track a page view, updates all the cookies and campaign tracker, - // makes a server side request to Google Analytics and writes the transparent - // gif byte data to the response. - function trackPageView() { - $timeStamp = time(); - $domainName = $_SERVER["SERVER_NAME"]; - if (empty($domainName)) { - $domainName = ""; - } - - // Get the referrer from the utmr parameter, this is the referrer to the - // page that contains the tracking pixel, not the referrer for tracking - // pixel. - $documentReferer = $_GET["utmr"]; - if (empty($documentReferer) && $documentReferer !== "0") { - $documentReferer = "-"; - } else { - $documentReferer = urldecode($documentReferer); - } - $documentPath = $_GET["utmp"]; - if (empty($documentPath)) { - $documentPath = ""; - } else { - $documentPath = urldecode($documentPath); - } - - $account = $_GET["utmac"]; - $userAgent = $_SERVER["HTTP_USER_AGENT"]; - if (empty($userAgent)) { - $userAgent = ""; - } - - // Try and get visitor cookie from the request. - $cookie = $_COOKIE[COOKIE_NAME]; - - $guidHeader = $_SERVER["HTTP_X_DCMGUID"]; - if (empty($guidHeader)) { - $guidHeader = $_SERVER["HTTP_X_UP_SUBNO"]; - } - if (empty($guidHeader)) { - $guidHeader = $_SERVER["HTTP_X_JPHONE_UID"]; - } - if (empty($guidHeader)) { - $guidHeader = $_SERVER["HTTP_X_EM_UID"]; - } - - $visitorId = getVisitorId($guidHeader, $account, $userAgent, $cookie); - - // Always try and add the cookie to the response. - setrawcookie( - COOKIE_NAME, - $visitorId, - $timeStamp + COOKIE_USER_PERSISTENCE, - COOKIE_PATH); - - $utmGifLocation = "http://www.google-analytics.com/__utm.gif"; - - // Construct the gif hit url. - $utmUrl = $utmGifLocation . "?" . - "utmwv=" . VERSION . - "&utmn=" . getRandomNumber() . - "&utmhn=" . urlencode($domainName) . - "&utmr=" . urlencode($documentReferer) . - "&utmp=" . urlencode($documentPath) . - "&utmac=" . $account . - "&utmcc=__utma%3D999.999.999.999.999.1%3B" . - "&utmvid=" . $visitorId . - "&utmip=" . getIP($_SERVER["REMOTE_ADDR"]); - - sendRequestToGoogleAnalytics($utmUrl); - - // If the debug parameter is on, add a header to the response that contains - // the url that was used to contact Google Analytics. - if (!empty($_GET["utmdebug"])) { - header("X-GA-MOBILE-URL:" . $utmUrl); - } - // Finally write the gif data to the response. - writeGifData(); - } -?> - --- /dev/null +++ b/include/common-geo.inc.php @@ -1,1 +1,151 @@ + $mapPoint) { + $markers.= $mapPoint[0] . "," . $mapPoint[1] . "," . $markerImage . ($index + 1); + if ($index + 1 != sizeof($mapPoints)) $markers.= "|"; + if ($mapPoint[0] < $minlat) $minlat = $mapPoint[0]; + if ($mapPoint[0] > $maxlat) $maxlat = $mapPoint[0]; + if ($mapPoint[1] < $minlon) $minlon = $mapPoint[1]; + if ($mapPoint[1] > $maxlon) $maxlon = $mapPoint[1]; + $totalLat+= $mapPoint[0]; + $totalLon+= $mapPoint[1]; + } + if ($zoom == 0) { + $mapwidthinmeters = distance($minlat, $minlon, $minlat, $maxlon); + foreach (array_reverse($metersperpixel, true) as $zoomLevel => $maxdistance) { + if ($zoom == 0 && $mapwidthinmeters < ($maxdistance + 50)) $zoom = $zoomLevel; + } + } + $center = $totalLat / sizeof($mapPoints) . "," . $totalLon / sizeof($mapPoints); + } + $output = ""; + if ($collapsible) $output.= '

Open Map...

'; + $output.= '
'; + if ($collapsible) $output.= '
'; + return $output; +} +function distance($lat1, $lng1, $lat2, $lng2, $roundLargeValues = false) +{ + $pi80 = M_PI / 180; + $lat1*= $pi80; + $lng1*= $pi80; + $lat2*= $pi80; + $lng2*= $pi80; + $r = 6372.797; // mean radius of Earth in km + $dlat = $lat2 - $lat1; + $dlng = $lng2 - $lng1; + $a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2); + $c = 2 * atan2(sqrt($a) , sqrt(1 - $a)); + $km = $r * $c; + if ($roundLargeValues) { + if ($km < 1) return floor($km * 1000); + else return round($km,2)."k"; + } else return floor($km * 1000); +} +function decodePolylineToArray($encoded) +{ + // source: http://latlongeeks.com/forum/viewtopic.php?f=4&t=5 + $length = strlen($encoded); + $index = 0; + $points = array(); + $lat = 0; + $lng = 0; + while ($index < $length) { + // Temporary variable to hold each ASCII byte. + $b = 0; + // The encoded polyline consists of a latitude value followed by a + // longitude value. They should always come in pairs. Read the + // latitude value first. + $shift = 0; + $result = 0; + do { + // The `ord(substr($encoded, $index++))` statement returns the ASCII + // code for the character at $index. Subtract 63 to get the original + // value. (63 was added to ensure proper ASCII characters are displayed + // in the encoded polyline string, which is `human` readable) + $b = ord(substr($encoded, $index++)) - 63; + // AND the bits of the byte with 0x1f to get the original 5-bit `chunk. + // Then left shift the bits by the required amount, which increases + // by 5 bits each time. + // OR the value into $results, which sums up the individual 5-bit chunks + // into the original value. Since the 5-bit chunks were reversed in + // order during encoding, reading them in this way ensures proper + // summation. + $result|= ($b & 0x1f) << $shift; + $shift+= 5; + } + // Continue while the read byte is >= 0x20 since the last `chunk` + // was not OR'd with 0x20 during the conversion process. (Signals the end) + while ($b >= 0x20); + // Check if negative, and convert. (All negative values have the last bit + // set) + $dlat = (($result & 1) ? ~($result >> 1) : ($result >> 1)); + // Compute actual latitude since value is offset from previous value. + $lat+= $dlat; + // The next values will correspond to the longitude for this point. + $shift = 0; + $result = 0; + do { + $b = ord(substr($encoded, $index++)) - 63; + $result|= ($b & 0x1f) << $shift; + $shift+= 5; + } while ($b >= 0x20); + $dlng = (($result & 1) ? ~($result >> 1) : ($result >> 1)); + $lng+= $dlng; + // The actual latitude and longitude values were multiplied by + // 1e5 before encoding so that they could be converted to a 32-bit + // integer representation. (With a decimal accuracy of 5 places) + // Convert back to original values. + $points[] = array( + $lat * 1e-5, + $lng * 1e-5 + ); + } + return $points; +} +function geocode($query, $giveOptions) +{ + global $cloudmadeAPIkey; + $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?query=" . urlencode($query) . "&bbox=-35.5,149.00,-35.15,149.1930&return_location=true&bbox_only=true"; + $contents = json_decode(getPage($url)); + if ($giveOptions) return $contents->features; + elseif (isset($contents->features[0]->centroid)) return $contents->features[0]->centroid->coordinates[0] . "," . $contents->features[0]->centroid->coordinates[1]; + else return ""; +} +function reverseGeocode($lat, $lng) +{ + global $cloudmadeAPIkey; + $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?around=" . $lat . "," . $lng . "&distance=closest&object_type=road"; + $contents = json_decode(getPage($url)); + return $contents->features[0]->properties->name; +} +?> --- /dev/null +++ b/include/common-net.inc.php @@ -1,1 +1,23 @@ - + Database temporarily unavailable: " . curl_errno($ch) . " " . curl_error($ch) . "
"; + curl_close($ch); + debug(print_r($page,true),"json"); + return $page; +} +function curPageURL() +{ + $isHTTPS = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"); + $port = (isset($_SERVER["SERVER_PORT"]) && ((!$isHTTPS && $_SERVER["SERVER_PORT"] != "80") || ($isHTTPS && $_SERVER["SERVER_PORT"] != "443"))); + $port = ($port) ? ':' . $_SERVER["SERVER_PORT"] : ''; + $url = ($isHTTPS ? 'https://' : 'http://') . $_SERVER["SERVER_NAME"] . $port . htmlentities(dirname($_SERVER['PHP_SELF']) , ENT_QUOTES) . "/"; + return $url; +} +?> --- /dev/null +++ b/include/common-template.inc.php @@ -1,1 +1,223 @@ - + + + + + ' . $pageTitle . ' + '; + if ($datepicker) echo ''; + if (isDebugServer()) echo ' + + '; + else echo ' + + '; + if ($datepicker) echo ' + '; + echo ''; + if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod')) { + echo ' + + + '; + } + if ($geolocate) { + echo " "; + } + echo ' +".' + + + '; + if ($opendiv) { + echo '
+ +
+

' . $pageTitle . '

+
+ +
'; + } +} +function include_footer() +{ + if ($geolocate && isset($_SESSION['lat'])) { + echo ""; + } + echo ''; + if (!isDebug()) { + $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); + echo ''; + } +} +function timePlaceSettings($geolocate = false) +{ + global $service_periods; + $geoerror = false; + if ($geolocate == true) { + $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; + } + if ($geoerror) { + echo '
Sorry, but your location could not currently be detected. + Please allow location permission, wait for your location to be detected, + or enter an address/co-ordinates in the box below.
'; + } + echo '
+

Change Time/Place (' . (isset($_SESSION['time']) ? $_SESSION['time'] : "Current Time,") . ' ' . ucwords(service_period()) . ')...

+
+
+
+ + +
+
+ + Current Time? +
+
+ + + +
+ + + +
'; +} +?> + --- /dev/null +++ b/include/common-transit.inc.php @@ -1,1 +1,73 @@ - + 0) { + $midnight = mktime(0, 0, 0, date("n") , date("j") , date("Y")); + return date("h:ia", $midnight + $seconds); + } + else { + return ""; + } +} +function viaPoints($tripid, $stopid, $timingPointsOnly = false) +{ + global $APIurl; + $url = $APIurl . "/json/tripstoptimes?trip=" . $tripid; + $json = json_decode(getPage($url)); + debug(print_r($json, true)); + $stops = $json[0]; + $times = $json[1]; + $foundStop = false; + $viaPoints = Array(); + foreach ($stops as $key => $row) { + if ($foundStop) { + if (!$timingPointsOnly || !startsWith($row[5], "Wj")) { + $viaPoints[] = Array( + "id" => $row[0], + "name" => $row[1], + "time" => $times[$key] + ); + } + } + else { + if ($row[0] == $stopid) $foundStop = true; + } + } + return $viaPoints; +} +function viaPointNames($tripid, $stopid) +{ + $points = viaPoints($tripid, $stopid, true); + $pointNames = Array(); + foreach ($points as $point) { + $pointNames[] = $point['name']; + } + return implode(", ", $pointNames); +} +?> --- /dev/null +++ b/include/common.inc.php @@ -1,1 +1,180 @@ +centroid)) { + $geocoded = true; + $_SESSION['lat'] = $contents[0]->centroid->coordinates[0]; + $_SESSION['lon'] = $contents[0]->centroid->coordinates[1]; + } + else { + $_SESSION['lat'] = ""; + $_SESSION['lon'] = ""; + } + } + } +} +debug(print_r($_SESSION, true) , "session"); +function isDebugServer() +{ + return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; +} +function isDebug($debugReason = "other") +{ + global $debugOkay; + return in_array($debugReason, $debugOkay, false) && isDebugServer(); +} +function debug($msg, $debugReason = "other") +{ + if (isDebug($debugReason)) echo "\n\n"; +} +function isJQueryMobileDevice() +{ + // http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897 + $user_agent = $_SERVER['HTTP_USER_AGENT']; + return preg_match('/iphone/i', $user_agent) + || preg_match('/android/i', $user_agent) + || preg_match('/webos/i', $user_agent) + || preg_match('/ios/i', $user_agent) + || preg_match('/bada/i', $user_agent) + || preg_match('/maemo/i', $user_agent) + || preg_match('/meego/i', $user_agent) + || preg_match('/fennec/i', $user_agent) + || (preg_match('/symbian/i', $user_agent) + && preg_match('/s60/i', $user_agent) + && $browser['majorver'] >= 5) + || (preg_match('/symbian/i', $user_agent) + && preg_match('/platform/i', $user_agent) + && $browser['majorver'] >= 3) + || (preg_match('/blackberry/i', $user_agent) + && $browser['majorver'] >= 5) + || (preg_match('/opera mobile/i', $user_agent) + && $browser['majorver'] >= 10) + || (preg_match('/opera mini/i', $user_agent) + && $browser['majorver'] >= 5); +} +function isFastDevice() +{ + $ua = $_SERVER['HTTP_USER_AGENT']; + $fastDevices = Array( + "Mozilla/5.0 (X11;", + "Mozilla/5.0 (Windows;", + "Mozilla/5.0 (iP", + "Mozilla/5.0 (Linux; U; Android", + "Mozilla/4.0 (compatible; MSIE" + ); + $slowDevices = Array( + "J2ME", + "MIDP", + "Opera/", + "Mozilla/2.0 (compatible;", + "Mozilla/3.0 (compatible;" + ); + return true; +} +function array_flatten($a, $f = array()) +{ + if (!$a || !is_array($a)) return ''; + foreach ($a as $k => $v) { + if (is_array($v)) $f = array_flatten($v, $f); + else $f[$k] = $v; + } + return $f; +} +function remove_spaces($string) +{ + return str_replace(' ', '', $string); +} +function object2array($object) +{ + if (is_object($object)) { + foreach ($object as $key => $value) { + $array[$key] = $value; + } + } + else { + $array = $object; + } + return $array; +} +function startsWith($haystack, $needle, $case = true) +{ + if ($case) { + return (strcmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); + } + return (strcasecmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); +} +function endsWith($haystack, $needle, $case = true) +{ + if ($case) { + return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); + } + return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); +} +function bracketsMeanNewLine($input) +{ + return str_replace(")", "
", str_replace("(", "
", $input)); +} +function sksort(&$array, $subkey = "id", $sort_ascending = false) +{ + if (count($array)) $temp_array[key($array) ] = array_shift($array); + foreach ($array as $key => $val) { + $offset = 0; + $found = false; + foreach ($temp_array as $tmp_key => $tmp_val) { + if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) { + $temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array( + $key => $val + ) , array_slice($temp_array, $offset)); + $found = true; + } + $offset++; + } + if (!$found) $temp_array = array_merge($temp_array, array( + $key => $val + )); + } + if ($sort_ascending) $array = array_reverse($temp_array); + else $array = $temp_array; +} +?> --- a/index.php +++ b/index.php @@ -1,5 +1,5 @@
@@ -28,3 +28,4 @@ include_footer(true) ?> + --- a/layar_api.php +++ b/layar_api.php @@ -1,5 +1,5 @@ + --- /dev/null +++ b/lib/ga.php @@ -1,1 +1,187 @@ + array( + "method" => "GET", + "user_agent" => $_SERVER["HTTP_USER_AGENT"], + "header" => ("Accepts-Language: " . $_SERVER["HTTP_ACCEPT_LANGUAGE"])) + ); + if (!empty($_GET["utmdebug"])) { + $data = file_get_contents( + $utmUrl, false, stream_context_create($options)); + } else { + $data = @file_get_contents( + $utmUrl, false, stream_context_create($options)); + } + } + + // Track a page view, updates all the cookies and campaign tracker, + // makes a server side request to Google Analytics and writes the transparent + // gif byte data to the response. + function trackPageView() { + $timeStamp = time(); + $domainName = $_SERVER["SERVER_NAME"]; + if (empty($domainName)) { + $domainName = ""; + } + + // Get the referrer from the utmr parameter, this is the referrer to the + // page that contains the tracking pixel, not the referrer for tracking + // pixel. + $documentReferer = $_GET["utmr"]; + if (empty($documentReferer) && $documentReferer !== "0") { + $documentReferer = "-"; + } else { + $documentReferer = urldecode($documentReferer); + } + $documentPath = $_GET["utmp"]; + if (empty($documentPath)) { + $documentPath = ""; + } else { + $documentPath = urldecode($documentPath); + } + + $account = $_GET["utmac"]; + $userAgent = $_SERVER["HTTP_USER_AGENT"]; + if (empty($userAgent)) { + $userAgent = ""; + } + + // Try and get visitor cookie from the request. + $cookie = $_COOKIE[COOKIE_NAME]; + + $guidHeader = $_SERVER["HTTP_X_DCMGUID"]; + if (empty($guidHeader)) { + $guidHeader = $_SERVER["HTTP_X_UP_SUBNO"]; + } + if (empty($guidHeader)) { + $guidHeader = $_SERVER["HTTP_X_JPHONE_UID"]; + } + if (empty($guidHeader)) { + $guidHeader = $_SERVER["HTTP_X_EM_UID"]; + } + + $visitorId = getVisitorId($guidHeader, $account, $userAgent, $cookie); + + // Always try and add the cookie to the response. + setrawcookie( + COOKIE_NAME, + $visitorId, + $timeStamp + COOKIE_USER_PERSISTENCE, + COOKIE_PATH); + + $utmGifLocation = "http://www.google-analytics.com/__utm.gif"; + + // Construct the gif hit url. + $utmUrl = $utmGifLocation . "?" . + "utmwv=" . VERSION . + "&utmn=" . getRandomNumber() . + "&utmhn=" . urlencode($domainName) . + "&utmr=" . urlencode($documentReferer) . + "&utmp=" . urlencode($documentPath) . + "&utmac=" . $account . + "&utmcc=__utma%3D999.999.999.999.999.1%3B" . + "&utmvid=" . $visitorId . + "&utmip=" . getIP($_SERVER["REMOTE_ADDR"]); + + sendRequestToGoogleAnalytics($utmUrl); + + // If the debug parameter is on, add a header to the response that contains + // the url that was used to contact Google Analytics. + if (!empty($_GET["utmdebug"])) { + header("X-GA-MOBILE-URL:" . $utmUrl); + } + // Finally write the gif data to the response. + writeGifData(); + } +?> + --- /dev/null +++ b/lib/ses.php @@ -1,1 +1,704 @@ - +__accessKey; } + public function getSecretKey() { return $this->__secretKey; } + public function getHost() { return $this->__host; } + + protected $__verifyHost = 1; + protected $__verifyPeer = 1; + + // verifyHost and verifyPeer determine whether curl verifies ssl certificates. + // It may be necessary to disable these checks on certain systems. + // These only have an effect if SSL is enabled. + public function verifyHost() { return $this->__verifyHost; } + public function enableVerifyHost($enable = true) { $this->__verifyHost = $enable; } + + public function verifyPeer() { return $this->__verifyPeer; } + public function enableVerifyPeer($enable = true) { $this->__verifyPeer = $enable; } + + /** + * Constructor + * + * @param string $accessKey Access key + * @param string $secretKey Secret key + * @return void + */ + public function __construct($accessKey = null, $secretKey = null, $host = 'email.us-east-1.amazonaws.com') { + if ($accessKey !== null && $secretKey !== null) { + $this->setAuth($accessKey, $secretKey); + } + $this->__host = $host; + } + + /** + * Set AWS access key and secret key + * + * @param string $accessKey Access key + * @param string $secretKey Secret key + * @return void + */ + public function setAuth($accessKey, $secretKey) { + $this->__accessKey = $accessKey; + $this->__secretKey = $secretKey; + } + + /** + * Lists the email addresses that have been verified and can be used as the 'From' address + * + * @return An array containing two items: a list of verified email addresses, and the request id. + */ + public function listVerifiedEmailAddresses() { + $rest = new SimpleEmailServiceRequest($this, 'GET'); + $rest->setParameter('Action', 'ListVerifiedEmailAddresses'); + + $rest = $rest->getResponse(); + if($rest->error === false && $rest->code !== 200) { + $rest->error = array('code' => $rest->code, 'message' => 'Unexpected HTTP status'); + } + if($rest->error !== false) { + $this->__triggerError('listVerifiedEmailAddresses', $rest->error); + return false; + } + + $response = array(); + if(!isset($rest->body)) { + return $response; + } + + $addresses = array(); + foreach($rest->body->ListVerifiedEmailAddressesResult->VerifiedEmailAddresses->member as $address) { + $addresses[] = (s