WS_OK_7.4.33 HEX
HEX
Server: nginx/1.21.4
System: Linux v12674 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64
User: endtheignorance (1014)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v12674/lcacorpold/public_html/wp-content/plugins/store-locator/sl-xml.php
<?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

function sl_xml_out($buff) {
	preg_match("@<markers>.*<\/markers>@s", $buff, $the_xml);
	//$the_xml[0]=preg_replace("@\n@","",$the_xml[0]);
	return $the_xml[0];
}
if (empty($_GET['debug'])) {
	ob_start("sl_xml_out");
}
header("Content-type: text/xml");
//Last save: 12/4/18 5:04 pm
/*
$username=DB_USER;
$password=DB_PASSWORD;
$database=DB_NAME;
$host=DB_HOST;

// Opens a connection to a MySQL server
$connection=mysql_connect ($host, $username, $password);
if (!$connection) { die('Not connected : ' . mysql_error()); }

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
mysql_query("SET NAMES utf8");
if (!$db_selected) { die ('Can\'t use db : ' . mysql_error());}
*/

//Removing any vars never intended for $_GET
$sl_ap_xml = array("sl_custom_fields", "sl_xml_columns");
foreach ($sl_ap_xml as $value){ if (!empty($_GET[$value])){ unset($_GET[$value]); } }

$sl_custom_fields = (!empty($sl_xml_columns))? ", ".implode(", ", $sl_xml_columns) : "" ;

if (!empty($_GET)) { $_sl = $_GET; unset($_GET['mode']); unset($_GET['lat']); unset($_GET["lng"]); unset($_GET["radius"]); unset($_GET["edit"]);}
$_GET=array_filter($_GET); //removing any empty $_GET items that may disrupt query

$sl_param_where_clause="";
$sl_param_order_clause="";
if (function_exists("do_sl_hook")){ do_sl_hook("sl_xml_query"); }

$num_initial_displayed=(trim($sl_vars['num_initial_displayed'])!="" && preg_match("@^[0-9]+$@", $sl_vars['num_initial_displayed']))? $sl_vars['num_initial_displayed'] : "25";

if (!empty($_sl['mode']) && $_sl['mode']=='gen') {
	// Get parameters from URL
	$center_lat = $_sl['lat'];
	$center_lng = $_sl['lng'];
	$radius = $_sl['radius'];
	
	$multiplier=3959;
	$multiplier=($sl_vars['distance_unit']=="km")? ($multiplier*1.609344) : $multiplier;
	
	$sl_param_order_clause = (empty($sl_param_order_clause))? "ORDER BY sl_distance" : $sl_param_order_clause.", sl_distance ASC"; //auto-append 'sl_distance' to clause at the end since it can't be done via sl_param_order_clause mod (will cause errors when loading locations by default). v3.93

	// Select all the rows in the markers table
	$query = $wpdb->prepare(
	"SELECT sl_address, sl_address2, sl_store, sl_city, sl_state, sl_zip, sl_latitude, sl_longitude, sl_description, sl_url, sl_hours, sl_phone, sl_fax, sl_email, sl_image, sl_tags".
	" %s,".
	" ( %f * acos( cos( radians('%s') ) * cos( radians( sl_latitude ) ) * cos( radians( sl_longitude ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( sl_latitude ) ) ) ) AS sl_distance".
	" FROM ".SL_TABLE.
	" WHERE sl_store<>'' AND sl_longitude<>'' AND sl_latitude<>''".
	" %s".
	" HAVING sl_distance < '%s'".
	" %s".
	" LIMIT %d",
	$sl_custom_fields,
	$multiplier,
	$center_lat,
	$center_lng,
	$center_lat,
	$sl_param_where_clause,
	$radius,
	$sl_param_order_clause,
	$num_initial_displayed); //die($query);
} else {
	// Select all the rows in the markers table
	$query =  $wpdb->prepare(
	"SELECT sl_address, sl_address2, sl_store, sl_city, sl_state, sl_zip, sl_latitude, sl_longitude, sl_description, sl_url, sl_hours, sl_phone, sl_fax, sl_email, sl_image, sl_tags".
	" %s".
	" FROM ".SL_TABLE.
	" WHERE sl_store<>'' AND sl_longitude<>'' AND sl_latitude<>''".
	" %s".
	" %s".
	" LIMIT %d",
	$sl_custom_fields,
	$sl_param_where_clause,
	$sl_param_order_clause,
	$num_initial_displayed); //die($query);
}

//die($query);
$result = $wpdb->get_results($query, ARRAY_A);

// Start XML file, echo parent node
echo "<markers>\n";
// Iterate through the rows, printing XML nodes for each
foreach ($result as $row){
  $addr2=(trim($row['sl_address2'])!="")? " ".sl_parseToXML($row['sl_address2']) : "" ;
  $row['sl_distance']=(!empty($row['sl_distance']))? $row['sl_distance'] : "" ;
  $row['sl_url']=(!sl_url_test($row['sl_url']) && trim($row['sl_url'])!="")? "http://".$row['sl_url'] : $row['sl_url'] ;
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . sl_parseToXML($row['sl_store']) . '" ';
  echo 'address="' . sl_parseToXML($row['sl_address']) .$addr2. ', '. sl_parseToXML($row['sl_city']). ', ' .sl_parseToXML($row['sl_state']).' ' .sl_parseToXML($row['sl_zip']).'" ';
  echo 'street="' . sl_parseToXML($row['sl_address']) . '" ';  //should've been sl_street in DB
  echo 'street2="' . sl_parseToXML($row['sl_address2']) . '" '; //should've been sl_street2 in DB
  echo 'city="' . sl_parseToXML($row['sl_city']). '" ';
  echo 'state="' . sl_parseToXML($row['sl_state']). '" ';
  echo 'zip="' . sl_parseToXML($row['sl_zip']). '" ';
  echo 'lat="' . sl_parseToXML($row['sl_latitude']) . '" ';
  echo 'lng="' . sl_parseToXML($row['sl_longitude']) . '" ';
  echo 'distance="' . sl_parseToXML($row['sl_distance']) . '" ';
  echo 'description="' . sl_parseToXML($row['sl_description']) . '" ';
  echo 'url="' . sl_parseToXML($row['sl_url']) . '" ';
  echo 'hours="' . sl_parseToXML($row['sl_hours']) . '" ';
  echo 'phone="' . sl_parseToXML($row['sl_phone']) . '" ';
  echo 'fax="' . sl_parseToXML($row['sl_fax']) . '" ';
  echo 'email="' . sl_parseToXML($row['sl_email']) . '" ';
  echo 'image="' . sl_parseToXML($row['sl_image']) . '" ';
  echo 'tags="' . sl_parseToXML($row['sl_tags']) . '" ';
  if (!empty($sl_xml_columns)){ 
  $alrdy_used=array('name', 'address', 'street', 'street2', 'city', 'state', 'zip', 'lat', 'lng', 'distance', 'description', 'url', 'hours', 'phone', 'fax', 'email', 'image', 'tags');
  	foreach($sl_xml_columns as $key=>$value) {
  		if (!in_array($value, $alrdy_used)) { //can't have duplicate property names in xml
	  		$row[$value]=(!isset($row[$value]))? "" : $row[$value] ;
  			 echo "$value=\"" . sl_parseToXML($row[$value]) . "\" ";
  			 $alrdy_used[]=$value;
  		}
  	}
  }
  echo "/>\n";
}

// End XML file
echo "</markers>\n";
if (empty($_GET['debug'])) {
	ob_end_flush();
}

//var_dump($_GET);
//print_r($sl_xml_columns); die();
//die($query);
//var_dump($sl_param_where_clause); die;
?>