discourse-legacysite-perl/site/googlemaps/map_json.php
2024-06-17 22:42:14 +10:00

228 lines
5.2 KiB
PHP

<?php
$db_host = "localhost";
$db_user = "gt";
$db_pass = 'dyBKmffRvvxMHfV8';
$db_name = 'dev_slowtwitch';
$is_live = true;
if ( $is_live ) {
$db_name = 'slowtwitch';
$db_user = 'slowtwitch';
$db_pass = 'k9volqlAcpq';
$db_host = '192.168.1.10';
}
$db_tables = array(
'coach' => 'gforum_Coaches',
'retailer' => 'gforum_Retailers',
'runshop' => 'gforum_Runshops',
'race' => 'gforum_Triathlons',
'fitter' => 'gforum_Fitters',
'triclub' => 'gforum_Triclubs',
'roadshow' => 'gforum_Roadshow'
);
if ( isset($_POST['action'] )) {
if ( $_POST["action"] == 'test' ) {
connectdb( 'runshop' );
fetchJson( 'runshop' );
echo 'testing';
}
}
if (is_ajax()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
$action = $_POST["action"];
switch($action) { //Switch case for value of action
case "test": return_json(); break;
}
}
}
//Function to check if the request is an AJAX request
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
function return_json(){
$return = $_POST;
echo json_encode($return);
}
function connectdb( $slug = null ) {
$data = array();
global $db_host, $db_user, $db_pass, $db_name;
global $db_tables;
if ( $slug !== null && $db_tables[$slug] ) {
$table = $db_tables[$slug];
$mysqli = new mysqli( $db_host, $db_user, $db_pass, $db_name);
if ( $mysqli->connect_errno ) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") "
. $mysqli->connect_error;
}
// Select all the rows in the markers table
$query = select_table( $slug );
/* Prepared statement, stage 1: prepare */
if ( ! ($stmt = $mysqli->prepare( $query ) ) ) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
return;
}
/* Execute statement */
if ( !$stmt->execute() ) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
return;
}
/* Get results */
if ( !( $result = db_get_result( $stmt ) ) ) {
echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
return;
}
$id = $slug . '_id';
$name = $slug . '_name';
$lat = $slug . '_lat';
$lng = $slug . '_lng';
$info1 = $slug . '_address';
$info2 = $slug . '_address_two';
$info3= $slug . '_city';
$info4 = $slug . '_state';
$phone = $slug . '_phone';
$email = $slug . '_email';
$website = $slug . '_website';
$details = '';
if ( $slug == 'coach')
$details = '/coaches/individual.php?coach_id=';
if ( $slug == 'retailer')
$details = '/retailers/individual.php?retailer_id=';
if ( $slug == 'fitter')
$details = '/fitters/individual.php?fitter_id=';
if ( $slug == 'runshop')
$details = '/runshops/individual.php?runshop_id=';
if ( $slug == 'triclub')
$details = '/triclubs/individual.php?triclub_id=';
if ( $slug == 'roadshow' ) {
$details = '/roadshow/individual.php?roadshow_id=';
}
if ( $slug == 'race' ) {
$name = 'name';
$lat = 'lat';
$lng = 'lng';
$info1 = 'date';
$info2 = 'swim';
$info3 = 'bike';
$info4 = 'run';
$id = 'uid';
$phone = 'phone';
$email = 'email';
$details = '/individual.php?uid=';
}
// Iterate through the rows, printing XML nodes for each
while ( $row = array_shift( $result ) ) {
if ( $row[$lat] && $row[$lng] ) {
$data[] = array(
'category' => $slug,
'name' => htmlentities ($row[$name]),
'lat' => $row[$lat],
'lng' => $row[$lng],
'info1' => htmlentities ($row[$info1]),
'info2' => htmlentities ($row[$info2]),
'info3' => htmlentities ($row[$info3]),
'info4' => htmlentities ($row[$info4]),
'phone' => htmlentities ($row[$phone]),
'email' => htmlentities ($row[$email]),
'website' => htmlentities ($row[$website]),
'details' => $details . $row[$id],
);
}
}
/* explicit close recommended */
$stmt->close();
$mysqli->close();
} else {
$data = 'no data';
}
$data = json_encode( $data );
return $data;
}
function select_table( $slug = null ) {
global $db_tables;
$query = '';
if ( $slug !== null ) {
$table = $db_tables[$slug];
if ( $table ) {
if ( $slug == 'race' ) {
$today = date('Y-m-d');
$query ='SELECT * FROM ' . $table . ' WHERE date >= "' .$today . '"';
} else {
$query ='SELECT * FROM ' . $table . ' WHERE ' . $slug . '_lat <> 0 AND ' .$slug . '_lng <> 0';
}
}
}
return $query;
}
function db_get_result( $Statement ) {
$RESULT = array();
$Statement->store_result();
for ( $i = 0; $i < $Statement->num_rows; $i++ ) {
$Metadata = $Statement->result_metadata();
$PARAMS = array();
while ( $Field = $Metadata->fetch_field() ) {
$PARAMS[] = &$RESULT[ $i ][ $Field->name ];
}
call_user_func_array( array( $Statement, 'bind_result' ), $PARAMS );
$Statement->fetch();
}
return $RESULT;
}
?>