Rearrange php libs/includes and produce sitemap.xml
[busui.git] / include / common.inc.php
blob:a/include/common.inc.php -> blob:b/include/common.inc.php
<?php <?php
   
  /*
  * Copyright 2010,2011 Alexander Sadleir
   
  Licensed under the Apache License, Version 2.0 (the 'License');
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
   
  http://www.apache.org/licenses/LICENSE-2.0
   
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an 'AS IS' BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  */
   
date_default_timezone_set('Australia/ACT'); date_default_timezone_set('Australia/ACT');
$APIurl = "http://localhost:8765"; $debugOkay = Array(
$cloudmadeAPIkey = "daa03470bb8740298d4b10e3f03d63e6"; 'session',
$googleMapsAPIkey = "ABQIAAAA95XYXN0cki3Yj_Sb71CFvBTPaLd08ONybQDjcH_VdYtHHLgZvRTw2INzI_m17_IoOUqH3RNNmlTk1Q"; 'json',
  'phperror',
  'awsotp',
  //'squallotp',
  //'vanilleotp',
  'database',
  'other'
  );
  $GTFSREnabled = true;
  $cloudmadeAPIkey = 'daa03470bb8740298d4b10e3f03d63e6';
  $googleMapsAPIkey = 'ABQIAAAA95XYXN0cki3Yj_Sb71CFvBTPaLd08ONybQDjcH_VdYtHHLgZvRTw2INzI_m17_IoOUqH3RNNmlTk1Q';
$otpAPIurl = 'http://localhost:8080/opentripplanner-api-webapp/'; $otpAPIurl = 'http://localhost:8080/opentripplanner-api-webapp/';
//$debugOkay = Array("session","json","phperror","other"); if (isDebug('awsotp') || php_uname('n') == 'maxious.xen.prgmr.com' || strstr(php_uname('n'),'actbus')) {
$debugOkay = Array( $otpAPIurl = 'http://bus-main.lambdacomplex.org:8080/opentripplanner-api-webapp/';
"session", }
"json", if (isDebug('dotcloudotp') || php_uname('n') == 'actbus-www') {
"phperror", $otpAPIurl = 'http://otp.actbus.dotcloud.com/opentripplanner-api-webapp/';
"other" }
); if (isDebug('squallotp')) {
if (isDebug("phperror")) error_reporting(E_ALL ^ E_NOTICE); $otpAPIurl = 'http://10.0.1.108:5080/opentripplanner-api-webapp/';
include_once ("common-geo.inc.php"); }
include_once ("common-net.inc.php"); if (isDebug('vanilleotp')) {
include_once ("common-template.inc.php"); $otpAPIurl = 'http://10.0.1.135:8080/opentripplanner-api-webapp/';
include_once ("common-transit.inc.php"); }
// you have to open the session to be able to modify or remove it if (isDebug('phperror'))
session_start(); error_reporting(E_ALL ^ E_NOTICE);
if (isset($_REQUEST['service_period'])) {  
$_SESSION['service_period'] = filter_var($_REQUEST['service_period'], FILTER_SANITIZE_STRING); define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
} if (strstr($_SERVER['PHP_SELF'], "labs/")
if (isset($_REQUEST['time'])) { || strstr($_SERVER['PHP_SELF'], "myway/")
$_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING); || strstr($_SERVER['PHP_SELF'], "lib/")
} || strstr($_SERVER['PHP_SELF'], "geo/")
if (isset($_REQUEST['geolocate'])) { || strstr($_SERVER['PHP_SELF'], "include/")
$geocoded = false; || strstr($_SERVER['PHP_SELF'], "rtpis/")) {
if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) { $basePath = "../";
$_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)); }
$_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));  
} function isDebugServer() {
else {  
$geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL); return php_sapi_name() == 'cli' || strstr(php_uname('n'),'actbus') || isset($_SERVER['SERVER_NAME']) && ( $_SERVER['SERVER_NAME'] == 'azusa' || $_SERVER['SERVER_NAME'] == 'vanille'
echo $_REQUEST['geolocate']; || $_SERVER['SERVER_NAME'] == 'localhost' || $_SERVER['SERVER_NAME'] == '127.0.0.1' || $_SERVER['SERVER_NAME'] == '192.168.1.8' || $_SERVER['SERVER_NAME'] == '192.168.178.24');
if (startsWith($geolocate, "-")) { }
$locateparts = explode(",", $geolocate);  
$_SESSION['lat'] = $locateparts[0]; if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'maxious.xen.prgmr.com') {
$_SESSION['lon'] = $locateparts[1]; // Set the exception handler
} require ROOT.'../lib/amon-php/amon.php';
else { Amon::setup_exception_handler();
$contents = geocode($geolocate, true); }
print_r($contents);  
if (isset($contents[0]->centroid)) { include_once ('common-geo.inc.php');
$geocoded = true; include_once ('common-net.inc.php');
$_SESSION['lat'] = $contents[0]->centroid->coordinates[0]; include_once ('common-transit.inc.php');
$_SESSION['lon'] = $contents[0]->centroid->coordinates[1]; if (!strstr($_SERVER['PHP_SELF'], 'feedback')) {
} include_once ('common-db.inc.php');
else { }
$_SESSION['lat'] = "";  
$_SESSION['lon'] = ""; include_once ('common-request.inc.php');
} include_once ('common-session.inc.php');
} include_once ('common-auth.inc.php');
} include_once ('common-template.inc.php');
}  
debug(print_r($_SESSION, true) , "session"); function isAnalyticsOn() {
function isDebugServer() $user_agent = $_SERVER['HTTP_USER_AGENT'];
{ return !isDebugServer() && !preg_match('/cloudkick/i', $user_agent) && !preg_match('/googlebot/i', $user_agent) &&
return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; !preg_match('/baidu/i', $user_agent);
} }
function isDebug($debugReason = "other")  
{ function isDebug($debugReason = 'other') {
global $debugOkay; global $debugOkay;
return in_array($debugReason, $debugOkay, false) && isDebugServer(); return in_array($debugReason, $debugOkay, false) && isDebugServer();
} }
function debug($msg, $debugReason = "other")  
{ function debug($msg, $debugReason = 'other') {
if (isDebug($debugReason)) echo "\n<!-- " . date(DATE_RFC822) . "\n $msg -->\n"; if (isDebug($debugReason))
} echo PHP_EOL.'<!-- ' . date(DATE_RFC822) . PHP_EOL.$msg.PHP_EOL.' -->'.PHP_EOL;
function isJQueryMobileDevice() }
{ function isIOSDevice() {
// http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897 return strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPad');
$user_agent = $_SERVER['HTTP_USER_AGENT']; }
return preg_match('/iphone/i', $user_agent) function isJQueryMobileDevice() {
|| preg_match('/android/i', $user_agent) // http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897
|| preg_match('/webos/i', $user_agent) $user_agent = $_SERVER['HTTP_USER_AGENT'];
|| preg_match('/ios/i', $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);
|| preg_match('/bada/i', $user_agent) }
|| preg_match('/maemo/i', $user_agent)  
|| preg_match('/meego/i', $user_agent)  
|| preg_match('/fennec/i', $user_agent) function array_flatten($a, $f = array()) {
|| (preg_match('/symbian/i', $user_agent) if (!$a || !is_array($a))
&& preg_match('/s60/i', $user_agent) return '';
&& $browser['majorver'] >= 5) foreach ($a as $k => $v) {
|| (preg_match('/symbian/i', $user_agent) if (is_array($v))
&& preg_match('/platform/i', $user_agent) $f = array_flatten($v, $f);
&& $browser['majorver'] >= 3) else
|| (preg_match('/blackberry/i', $user_agent) $f[$k] = $v;
&& $browser['majorver'] >= 5) }
|| (preg_match('/opera mobile/i', $user_agent) return $f;
&& $browser['majorver'] >= 10) }
|| (preg_match('/opera mini/i', $user_agent)  
&& $browser['majorver'] >= 5); function remove_spaces($string) {
} return str_replace(' ', '', $string);
function isFastDevice() }
{  
$ua = $_SERVER['HTTP_USER_AGENT']; function object2array($object) {
$fastDevices = Array( if (is_object($object)) {
"Mozilla/5.0 (X11;", foreach ($object as $key => $value) {
"Mozilla/5.0 (Windows;", $array[$key] = $value;
"Mozilla/5.0 (iP", }
"Mozilla/5.0 (Linux; U; Android", } else {
"Mozilla/4.0 (compatible; MSIE" $array = $object;
); }
$slowDevices = Array( return $array;
"J2ME", }
"MIDP",  
"Opera/", function startsWith($haystack, $needle, $case = true) {
"Mozilla/2.0 (compatible;", if ($case) {
"Mozilla/3.0 (compatible;" return (strcmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
); }
return true; return (strcasecmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
} }
function array_flatten($a, $f = array())  
{ function endsWith($haystack, $needle, $case = true) {
if (!$a || !is_array($a)) return ''; if ($case) {
foreach ($a as $k => $v) { return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
if (is_array($v)) $f = array_flatten($v, $f); }
else $f[$k] = $v; return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
} }
return $f;  
} function sksort(&$array, $subkey = 'id', $sort_ascending = false) {
function remove_spaces($string) if (count($array))
{ $temp_array[key($array)] = array_shift($array);
return str_replace(' ', '', $string); foreach ($array as $key => $val) {
} $offset = 0;
function object2array($object) $found = false;
{ foreach ($temp_array as $tmp_key => $tmp_val) {
if (is_object($object)) { if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) {
foreach ($object as $key => $value) { $temp_array = array_merge((array) array_slice($temp_array, 0, $offset), array(
$array[$key] = $value; $key => $val
} ), array_slice($temp_array, $offset));
} $found = true;
else { }
$array = $object; $offset++;
} }
return $array; if (!$found)
} $temp_array = array_merge($temp_array, array(
function startsWith($haystack, $needle, $case = true) $key => $val
{ ));
if ($case) { }
return (strcmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); if ($sort_ascending)
} $array = array_reverse($temp_array);
return (strcasecmp(substr($haystack, 0, strlen($needle)) , $needle) === 0); else
} $array = $temp_array;
function endsWith($haystack, $needle, $case = true) }
{  
if ($case) { function sktimesort(&$array, $subkey = 'id', $sort_ascending = false) {
return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); if (count($array))
} $temp_array[key($array)] = array_shift($array);
return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)) , $needle) === 0); foreach ($array as $key => $val) {
} $offset = 0;
function bracketsMeanNewLine($input) $found = false;
{ foreach ($temp_array as $tmp_key => $tmp_val) {
return str_replace(")", "</small>", str_replace("(", "<br><small>", $input)); if (!$found and strtotime($val[$subkey]) > strtotime($tmp_val[$subkey])) {
} $temp_array = array_merge((array) array_slice($temp_array, 0, $offset), array(
function sksort(&$array, $subkey = "id", $sort_ascending = false) $key => $val
{ ), array_slice($temp_array, $offset));
if (count($array)) $temp_array[key($array) ] = array_shift($array); $found = true;
foreach ($array as $key => $val) { }
$offset = 0; $offset++;
$found = false; }
foreach ($temp_array as $tmp_key => $tmp_val) { if (!$found)
if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) { $temp_array = array_merge($temp_array, array(
$temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array( $key => $val
$key => $val ));
) , array_slice($temp_array, $offset)); }
$found = true; if ($sort_ascending && isset($temp_array))
} $array = array_reverse($temp_array);
$offset++; else
} $array = $temp_array;
if (!$found) $temp_array = array_merge($temp_array, array( }
$key => $val  
)); function r_implode($glue, $pieces) {
} foreach ($pieces as $r_pieces) {
if ($sort_ascending) $array = array_reverse($temp_array); if (is_array($r_pieces)) {
else $array = $temp_array; $retVal[] = r_implode($glue, $r_pieces);
} } else {
?> $retVal[] = $r_pieces;
  }
  }
  return implode($glue, $retVal);
  }