<?php
//Import functions
error_reporting(7);
/*****************************************************************/
/*******function: realpressImportFeeds version 3.0 2011-08-15 ***/
/***** import feeds as listing ***/
/***** Support feeds: Kyero, ***/
/***** Property-Net_Spain (similar to Kyero) ***/
/***** Mondinion ***/
/***** Xml2U ***/
/***** Resales-online ***/
/***** Property Portal Feeder ***/
/*****************************************************************/
function realpressImportFeeds($import,$debug=false)
{
global $wpdb, $table_prefix, $current_user, $ngg;
// if have checked Pool Feature
$feature_atltered_pool = false;
//debug mode
//$debug=false;
//cut out spaces
$import["import_feed"] = trim($import["import_feed"]);
//set default value for selected countries (advanced settings)
if (!isset($import["import_country"]))
$import["import_country"] = false;
if (defined('NGGALLERY_ABSPATH')) {
include_once (NGGALLERY_ABSPATH . 'admin/functions.php');
}
//if cronjob
if (!defined('REALPRESS_CRON')) {
// end all output buffering so we can flush
while (ob_get_level()) {
ob_end_flush();
}
//start our buffering
ob_start();
//create div for log import
echo "<div style='margin-top:20px;'>Feed import progress:</div>";
echo "<div style='border:1px solid black;margin-left:10px;margin-top:20px;width:500px;height:400px;overflow: auto;'>";
}
else{
echo "Feed import progress:\n";
}
//$lang=realpressGetPluginLang();
$lang = $import["lang"];
//set server limits
set_server_limits();
if ($debug)
realpressLogImport("<span style='background-color:red;'>Debug is Enabled.</span>");
//if cant get xml from the web
if (ini_get('allow_url_fopen') == 0) {
realpressLogImport("Import settings:");
realpressLogImport("Feed type:" . $import["import_type"]);
realpressLogImport("Feed url:" . $import["import_feed"]);
realpressLogImport("Feed language:" . $lang);
realpressLogImport("Items to execute:" . (((int) $import["import_count"] == -1) ? "All" : $import["import_count"]) . "<br />");
realpressLogImport(" <span style='background-color:red;'>Server can't receive any files from the web. Please contact system administrator to enable PHP Directive 'allow_url_fopen'. </span>");
realpressLogImport(" <span style='background-color:red;'>EXIT </span>");
//if cronjob
if (!defined('REALPRESS_CRON')) { echo "</div>";}
return;
}
//import limit
$import["import_count"] = (isset($import["import_count"]) ? (int) $import["import_count"] : -1);
realpressLogImport("Import settings:");
realpressLogImport("Feed type:" . $import["import_type"]);
realpressLogImport("Feed url:" . $import["import_feed"]);
realpressLogImport("Feed language:" . $lang);
realpressLogImport("Items to execute:" . (((int) $import["import_count"] == -1) ? "All" : $import["import_count"]) . "<br />");
//get feed id
$import["id_import_feed"]=rpp_import::is_feed_exists($import);
// var_dump($import["id_import_feed"]);
//die;
//if ($import["import_country"]
rpp_import_show_advanced_settings($import["import_country"]);
//show progress
realpressLogImport("Start import process ..");
switch ($import["import_type"]) {
//Kyero parser news feed
//optimized for Kyero feed ver 2.3 (16/12/2008)
case "Kyero":
realpressImportKyero($lang, $import, $debug);
break;
//Property-Net_Spain parser property feed
//optimized for Property-Net_Spain feed ver 2_1 (Kyero feed structure)
case "Property-Net_Spain":
realpressImportKyero($lang, $import, $debug);
break;
case "Mondinion":
realpressImportMondinion($lang, $import, $debug);
break;
case "xml2u":
realpressImportXML2U($lang, $import, $debug);
break;
case "Resales-online":
realpressImportResales($lang, $import, $debug);
break;
case "propertyworld":
realpressImportPropertyworld($lang, $import, $debug);
break;
case "Cam bank":
realpressImportCamBank($lang,$import,$debug);
break;
case "PPF":
realpressImportPPF($lang,$import,$debug);
break;
}
//if cronjob
if (!defined('REALPRESS_CRON')) {
ob_end_flush();
echo "</div>";
}
}
function realpressLogImport($str=".",$sleep=0.5)
{
$separator=(defined('REALPRESS_CRON'))?"\n":"<br />";
if ($str!=""){echo $str.$separator;}
else {echo ".";}
if (!defined('REALPRESS_CRON')){ ob_flush();flush();}
//sleep(1);
//usleep(50000);
usleep(100000*(float)$sleep);
}
//added 2010.12.07
function realpressImportResales($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
if ($lang=="en") $lang="uk";
$listing_features_arr=array("has_pool"=>"Pool","has_garden"=>"Garden","has_garage"=>"Garage");
//database fields for realpress table
// key - ImportResales field
// value - realpress field
$db_fiels = array (
array ("type"=>"eval","field"=>"['lastUpdatedDate']","value"=>"listdate"),
array ("type"=>"eval","field"=>"['price']","value"=>"price_total"),
array ("type"=>"eval","field"=>"['beds']","value"=>"beds"),
array ("type"=>"eval","field"=>"['baths']","value"=>"baths"),
array ("type"=>"eval","action"=>"nl2br","field"=>"['description']['".$lang."']","value"=>"description"),
array ("type"=>"eval","field"=>"['currency']","value"=>"currencyid"),
array ("type"=>"eval","field"=>"['reference']","value"=>"mls"),
array ("type"=>"eval","field"=>"['builtYear']","value"=>"yearbuild"),
//array ("type"=>"eval","field"=>"['address']['address1']","value"=>"addressnumber"),
//array ("type"=>"eval","field"=>array("['address']['address2']","['address']['address3']"),"value"=>"stree"),
array ("type"=>"eval","field"=>"['address']['postalCode']","value"=>"postcode"),
array ("type"=>"eval","field"=>"['town']","value"=>"city"),
array ("type"=>"eval","field"=>"['area']","value"=>"neighborhood"),
array ("type"=>"eval","field"=>"['province']","value"=>"state"),
array ("type"=>"eval","field"=>"['country']","value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
);
//xml listing types
//key - ImportResales type
//value - Realpres type
$listing_types= array(
"residential for sale" => "For Sale",
"Residential For Sale" => "For Sale",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
);
//property counter
$prop_counter=0;
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
if (!isset($xml->resalesonline)){
realpressLogImport("<span style='background-color:red;'>It's not Resales Feed. Exit.</span>");
return false;
}
//var_dump($xml);
//die;
{
foreach ($xml->property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
if (isset($d["id"])) $d["reference"]=$d["id"];
else if (!isset($d["reference"])) {
realpressLogImport("<span style='background-color:red;'>Current Property doesnot have ID. Read next Property.</span>");
continue;
}
realpressLogImport ("Checking for the listing id=".$d["reference"]." .. ");
//var_dump($d);
//die;
$d["category"]="residential for sale";
//if current listing type in reserved types for this feed
if (array_key_exists($d["category"], $listing_types))
{
//if incorrect setting in XML
if (is_array($d["reference"])) $d["reference"]="0";
//check for existing current house id in DB
$house_id = rpp_import::is_property_exists($d["reference"],$current_user->ID,$import["id_import_feed"]);
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["reference"]."' and limit 1";
//if ($show_sql) var_dump($sql);
//$house_id = $wpdb->get_var($sql);
//if have this property in DB then skip
if (!is_null($house_id)) {
// realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
// continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
//if add new property
if (!$update_property)
{
//if property has not selected country
//if (!check_selected_country_to_import($d['country'],$d['province'],$import["import_country"])) continue;
if (!check_selected_country_to_import($d['country'],$d['town'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['country'].", Town:".$d['town']." </span>");
$prop_counter++;
//$sql = "insert into ".$table_prefix."realpresshouse set ";
}
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["category"]]."', ";
//set property type
//if (is_array($d["type"])&&(isset($d["type"][$lang])))
{
if (isset($d['type'][$lang])&&isset($d['subtype'][$lang]))
$prop_type=ucwords($d['type'][$lang])." - ".$d['subtype'][$lang];
else if (isset($d['type'][$lang]))
$prop_type=ucwords($d['type'][$lang]);
else if (isset($d['subtype'][$lang]))
$prop_type=ucwords($d['subtype'][$lang]);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$listing_features="";
//check for features
foreach ($listing_features_arr as $fk =>$fv)
{
if (isset($d[$fk])&&($d[$fk]=="1"))
{
//add "Pool" as listing feature is need it
$feature_name=$fv;
//TODO: add expetion to add feature 1 time per import
realpressAlterFeature($feature_name);
//add to database
$listing_features.=$feature_name.", ";
}
}
$sql.= " listingfeatures = '".rtrim($listing_features,", ")."', ";
$propertyfeatures = ((isset($d['beds']))?($d['beds']. " Bedroom".(($d['beds']>1)?"s":"").";"):"");
$propertyfeatures .= ((isset($d['baths']))?($d['baths']. " Bathroom".(($d['baths']>1)?"s":"").";"):"");
foreach ($d['characteristics']["category"] as $kf => $vf)
{
$feature="";
if (isset ($vf["name"][$lang]))
{
$feature=$vf["name"][$lang].":";
//if (!is_array($vf["value"]))
if (isset($vf["value"][$lang])) $feature.=" ".$vf["value"][$lang]." ,";
else foreach ($vf["value"] as $vfv) $feature.=" ".$vfv[$lang]." ,";
$feature=rtrim($feature," ,");
}
if ($feature!="") $propertyfeatures .= " ".$feature.";";
}
$sql .= "propertyfeatures ='".stripslashes($propertyfeatures)."', ";
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
///var_dump($debug);
if (!$debug)
{
$result=$wpdb->query($wpdb->prepare($sql));
//if prepare function isnt working
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
$m_rp_listTitle = $d["beds"]." Bed ".ucfirst($d["type"][$lang])." For Sale in ".ucfirst($d["area"]);
//add post data
$realPostId=rpp_import::add_post($d['description'][$lang],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
if ($import_images && class_exists('nggAdmin'))
{
$newgallery="Resales-".$d["reference"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","url",$newgallery,$debug);
}
}
else
realpressLogImport (" <span style='background-color:red;'>Photos import has been disabled. Try to install NG Gallery or enable photos import option.</span>");
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
}
realMessage("XML file has been imported.");
}
function realpressImportPropertyworld($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
//database fields for realpress table
// key - rss field
// value - realpress field
$db_fiels = array (
//"date" => array ("value"=>"listdate"),
array ("type"=>"eval","field"=>"['price']['price']","value"=>"price_total"),
array ("type"=>"eval","field"=>"['description']['bedrooms']","value"=>"beds"),
array ("type"=>"eval","field"=>"['description']['bathrooms']","value"=>"baths"),
// array ("type"=>"eval","action"=>"nl2br","field"=>"['description']['addDescription']","value"=>"description"),
array ("type"=>"eval","action"=>"","field"=>"['description']['addDescription']","value"=>"description"),
array ("type"=>"eval","field"=>"['address']['location']","value"=>"city"),
array ("type"=>"eval","field"=>"['address']['region']","value"=>"state"),
array ("type"=>"eval","field"=>"['price']['currency']","value"=>"currencyid"),
array ("type"=>"eval","field"=>"['propertyid']","value"=>"mls"),
array ("type"=>"eval","field"=>"['address']['location']","value"=>"neighborhood"),
array ("type"=>"eval","field"=>"['address']['country']","value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
);
//xml listing types
//key - rss type
//value - Realpres type
$listing_types= array(
"residential for sale" => "For Sale",
"Residential For Sale" => "For Sale",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
);
//property counter
$prop_counter=0;
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
///die;
//if ($xml->FileDetails->fileFormat != "Xml2u.com Default") return false;
foreach ($xml->agents as $ck => $cd)
{
foreach ($cd->agent->properties->property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
realpressLogImport ("Checking for the listing id=".$d["propertyid"]." .. ");
//if current listing type in reserved types for this feed
if (array_key_exists($d["price"]["category"], $listing_types))
{
//if incorrect setting in XML
if (is_array($d["propertyid"])) $d["propertyid"]="0";
//check for existing current house id in DB
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["propertyid"]."' limit 1";
//if ($show_sql) var_dump($sql);
//$house_id = $wpdb->get_var($sql);
//check for existing current house id in DB
$house_id = rpp_import::is_property_exists($d["propertyid"],$current_user->ID,$import["id_import_feed"]);
//if have this property in DB then skip
if (!is_null($house_id)) {
//realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
//continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
//if add new property
if (!$update_property)
{
//if property has not selected country
//if (!check_selected_country_to_import($d['address']['country'],$d['address']['location'],$import["import_country"])) continue;
if (!check_selected_country_to_import($d['address']['country'],$d['address']['location'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['address']['country'].", Town:".$d['address']['location']." </span>");
$prop_counter++;
//$sql = "insert into ".$table_prefix."realpresshouse set ";
}
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["category"]]."', ";
//set property type
//if (is_array($d["type"])&&(isset($d["type"][$lang])))
{
$prop_type=ucwords($d['description']['propertyType']);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$propertyfeatures = ((isset($d['description']['bedrooms']))?($d['description']['bedrooms']. " Bedroom".(($d['description']['bedrooms']>1)?"s":"").","):"");
$propertyfeatures .= ((isset($d['description']['bathrooms']))?($d['description']['bathrooms']. " Bathroom".(($d['description']['bathrooms']>1)?"s":"").","):"");
/*foreach ($d['Description']['Features'] as $kf => $vf)
{
if ($vf!="") $propertyfeatures .= " ".$vf." ,";
} */
$sql .= "propertyfeatures ='".stripslashes(rtrim($propertyfeatures," ,"))."', ";
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
if (!$debug)
{
$result=$wpdb->query($wpdb->prepare($sql));
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
//if update old property then show messaeg we updated property and get new property for analyzing
if ($update_property)
{
//get post id
$realPostId=RPP_DB::selectVal($table_prefix."realpresshouse","postid", array("id"=>$m_realHouseInsertID));
realpressLogImport (" <span style='background-color:green;'>Listing has been updated in DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
continue;
}
//die;
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
$m_rp_listTitle = ($d['description']['title']!="")?$d['description']['title']:$d['description']['bedrooms']." Bed ".ucfirst($d['description']['propertyType'])." For Sale in ".ucfirst($d['address']['location']);
//add post data
$realPostId=rpp_import::add_post($d['description']['addDescription'],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
if ($import_images && class_exists('nggAdmin'))
{
$newgallery="PropertyWorld-".$d["propertyid"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
rpp_import::add_gallery($realPostId,$d["images"]["image"],"image","image",$newgallery,$debug);
}
}
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
realMessage("XML file has been imported.");
//var_dump($xml);
//die;
}
function realpressImportXML2U($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
$debug=false;
//database fields for realpress table
// key - XML2U field
// value - realpress field
$db_fiels = array (
array ("type"=>"eval","field"=>"['Price']['price']","value"=>"price_total"),
array ("type"=>"eval","field"=>"['Description']['bedrooms']","value"=>"beds"),
array ("type"=>"eval","field"=>"['Description']['fullBathrooms']","value"=>"baths"),
array ("type"=>"eval","action"=>"nl2br","field"=>"['Description']['description']","value"=>"description"),
array ("type"=>"eval","field"=>"['Address']['street']","value"=>"stree"),
array ("type"=>"eval","field"=>"['Address']['street']","value"=>"addressnumber"),
array ("type"=>"eval","field"=>"['Address']['postcode']","value"=>"postcode"),
array ("type"=>"eval","field"=>"['Address']['location']","value"=>"city"),
array ("type"=>"eval","field"=>"['Address']['region']","value"=>"state"),
array ("type"=>"eval","field"=>"['Price']['currency']","value"=>"currencyid"),
array ("type"=>"eval","field"=>"['Price']['status']","value"=>"status"),
array ("type"=>"eval","field"=>"['EPC']","value"=>"pdf"),
array ("type"=>"eval","field"=>"['propertyid']","value"=>"mls"),
array ("type"=>"eval","field"=>"['Address']['location']","value"=>"neighborhood"),
array ("type"=>"eval","field"=>"['Address']['country']","value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
//array ("type"=>"eval","field"=>"['Description']['title']","value"=>"title"),
);
//listing types support by Kyero
//key - XML2U type
//value - Realpres type
$listing_types= array(
"residential for sale" => "For Sale",
"Residential For Sale" => "For Sale",
"Residential For Rent" => "For Rent",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
"Bank Repossessions" => "For Sale",
);
//property counter
$prop_counter=0;
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
//if ($xml->FileDetails->fileFormat != "Xml2u.com Default") return false;
foreach ($xml->Clients as $ck => $cd)
{
// var_dump(count($cd->Client->properties->Property));
foreach ($cd->Client->properties->Property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
realpressLogImport ("Checking for the listing id=".$d["propertyid"]." .. ");
//if current listing type in reserved types for this feed
if (array_key_exists($d["category"], $listing_types))
{
//if incorrect setting in XML
if (is_array($d["propertyid"])) $d["propertyid"]="0";
//check for existing current house id in DB
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["propertyid"]."' limit 1";
//if ($show_sql) var_dump($sql);
//$house_id = $wpdb->get_var($sql);
$house_id = rpp_import::is_property_exists($d["propertyid"],$current_user->ID,$import["id_import_feed"]);
//if have this property in DB then skip
if (!is_null($house_id)) {
// realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
// continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
//if add new property
if (!$update_property)
{
//if property has not selected country
if (!check_selected_country_to_import($d['Address']['country'],$d['Address']['location'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['Address']['country'].", Town:".$d['Address']['location']." </span>");
$prop_counter++;
}
//die;
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["category"]]."', ";
//set property type
{
$prop_type=ucwords($d['Description']['propertyType']);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$propertyfeatures .= ((isset($d['Description']['fullBathrooms']))?($d['Description']['fullBathrooms']. " Bathroom".(($d['Description']['fullBathrooms']>1)?"s":"").","):"");
$propertyfeatures = ((isset($d['Description']['bedrooms']))?($d['Description']['bedrooms']. " Bedroom".(($d['Description']['bedrooms']>1)?"s":"").","):"");
foreach ($d['Description']['Features'] as $kf => $vf)
{
if ($vf!="") $propertyfeatures .= " ".$vf." ,";
}
$sql .= "propertyfeatures ='".stripslashes(rtrim($propertyfeatures," ,"))."', ";
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
// var_dump($sql);
// die;
if (!$debug)
{
$result=$wpdb->query($wpdb->prepare($sql));
//if prepare function isnt working
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
//if update old property then show messaeg we updated property and get new property for analyzing
if ($update_property)
{
//get post id
$realPostId=RPP_DB::selectVal($table_prefix."realpresshouse","postid", array("id"=>$m_realHouseInsertID));
realpressLogImport (" <span style='background-color:green;'>Listing has been updated in DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
//if ($import_images && class_exists('nggAdmin'))
if (class_exists('nggAdmin'))
{
$newgallery="xml2u-".$d["propertyid"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
//rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","image",$newgallery,$debug);
rpp_import::add_gallery($realPostId,$d["images"]["image"],"image","image",$newgallery,$debug);
}
}
continue;
}
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
/*$m_rp_listTitle = ($d['Description']['title']!="")?$d['Description']['title']:$d['Description']['bedrooms']." Bed ".ucfirst($d['Description']['propertyType'])." For Sale in ".ucfirst($d['Address']['location']);*/
$bedroom_number = $d['Description']['bedrooms'];
$bedroom_check = ((isset($d['Description']['bedrooms']))?($d['Description']['bedrooms']. " Bedroom".(($d['Description']['bedrooms']>1)?"":"").","):"");
/*if ($bedroom_number >=1) {
$bedroom_check = " Bedroom ";
echo $bedroom_check;
} else {}*/
//$m_rp_listTitle = ucfirst($d["Address"]["location"]).", ".$bedroom_check.ucfirst($d['Description']['propertyType']);
$m_rp_listTitle = ucfirst($d["Address"]["location"]).", ".ucfirst(str_replace('To Rent', '',$d['Description']['title']));
//add post data
$realPostId=rpp_import::add_post($d['Description']['description'],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
realpressLogImport(" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
//if ($import_images && class_exists('nggAdmin'))
if (class_exists('nggAdmin'))
{
$newgallery="xml2u-".$d["propertyid"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
//rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","image",$newgallery,$debug);
rpp_import::add_gallery($realPostId,$d["images"]["image"],"image","image",$newgallery,$debug);
}
}
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
realMessage("XML file has been imported.");
}
function realpressImportMondinion($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
//database fields for realpress table
// key - kyero field
// value - realpress field
$db_fiels = array (
"date" => array ("value"=>"listdate"),
"price" => array ("value"=>"price_total"),
"beds" => array ("value"=>"beds"),
"baths" => array ("value"=>"baths"),
"desc" => array ("value"=>"description"),
"town" => array ("value"=>"city"),
"province" => array ("value"=>"state"),
"currency" => array ("value"=>"currencyid"),
// "location_id" => array ("value"=>"mls"),
"adid" => array ("value"=>"mls"),
//"type" => array ("value"=>"propertytype"),
//"location_detail" => array ("value"=>"neighborhood"),
array ("value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
);
//listing types support by Kyero
//key - Kyero type
//value - Realpres type
$listing_types= array(
"sale" => "For Sale",
"new_build" => "For Sale",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
);
//property counter
$prop_counter=0;
//postmeta
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
//show progress
realpressLogImport("Get feed into array ");
//die;
//if not mondinion
if (!isset($xml->property)&&!isset($xml->mondinion)) return false;
foreach ($xml->property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
realpressLogImport ("Checking for the listing id=".$d["adid"]." .. ");
//if current listing type in reserved types for this feed
if (array_key_exists($d["price_freq"], $listing_types))
{
//if incorrect setting in XML
if (is_array($d["adid"])) $d["adid"]="0";
//if desc is empty
if (is_array($d["desc"])) $d["desc"]="";
//check for existing current house id in DB
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["adid"]."' limit 1";
//$house_id = $wpdb->get_var($sql);
//check for existing current house id in DB
$house_id = rpp_import::is_property_exists($d["adid"],$current_user->ID,$import["id_import_feed"]);
//if have this property in DB then skip
if (!is_null($house_id)) {
//realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
//continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
$where="";
//if add new property
if (!$update_property)
{
//if property has not selected country
if (!check_selected_country_to_import($d['country'],$d['town'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['country'].", Town:".$d['town']." </span>");
$prop_counter++;
//$sql = "insert into ".$table_prefix."realpresshouse set ";
}
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["price_freq"]]."', ";
// var_dump($sql);
// die;
//set property type
if (is_array($d["type"])&&(isset($d["type"][$lang])))
{
$prop_type=ucwords($d["type"][$lang]);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$propertyfeatures = ((isset($d["baths"]))?($d["baths"]. " Bathroom".(($d["baths"]>1)?"s":"").","):"");
$propertyfeatures .= ((isset($d["beds"]))?($d["beds"]. " Bedroom".(($d["beds"]>1)?"s":"").","):"");
foreach ($d["features"] as $kf => $vf)
{
$propertyfeatures .= " ".$vf." ".$kf.($vf>1?"s":"").",";
}
$sql .= "propertyfeatures ='".stripslashes(rtrim($propertyfeatures,","))."', ";
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
if (!$debug)
{
$result=$wpdb->query($wpdb->prepare($sql));
//if prepare function isnt working
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
//if update old property then show messaeg we updated property and get new property for analyzing
if ($update_property)
{
//get post id
$realPostId=RPP_DB::selectVal($table_prefix."realpresshouse","postid", array("id"=>$m_realHouseInsertID));
realpressLogImport (" <span style='background-color:green;'>Listing has been updated in DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
continue;
}
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
$m_rp_listTitle = $d["beds"]." Bed ".ucfirst($d["type"][$lang])." For Sale in ".ucfirst($d["town"]);
//add post data
$realPostId=rpp_import::add_post($d["desc"],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
if ($import_images && class_exists('nggAdmin'))
{
$newgallery="mond-prop-".$d["adid"];//$m_rp_listTitle;
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","url",$newgallery,$debug);
}
}
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
realMessage("XML file has been imported.");
}
//do Kyero Feed
function realpressImportKyero($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
//database fields for realpress table
// key - kyero field
// value - realpress field
$db_fiels = array (
"date" => array ("value"=>"listdate"),
"price" => array ("value"=>"price_total"),
"beds" => array ("value"=>"beds"),
"baths" => array ("value"=>"baths"),
"desc" => array ("value"=>"description"),
"town" => array ("value"=>"city"),
"province" => array ("value"=>"state"),
// "location_id" => array ("value"=>"mls"),
"id" => array ("value"=>"mls"),
//"type" => array ("value"=>"propertytype"),
"location_detail" => array ("value"=>"neighborhood"),
array ("value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
);
//listing types support by Kyero
//key - Kyero type
//value - Realpres type
$listing_types= array(
"sale" => "For Sale",
"new_build" => "For Sale",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
);
//property counter
$prop_counter=0;
//add new listing types if need it
realpressAlterListingType($listing_types);
//show progress
realpressLogImport("Add new listing types, if need it .. ");
//var_dump($wpdb);
//$wpdb->
$wpdb_temp=$wpdb;
//postmeta
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
//show progress
realpressLogImport("Get feed into array ");
//var_dump($xml);
//die;
//if not kyero
//if (!isset($xml["root"]["property"])&&!isset($xml["root"]["kyero"])) return false;
if (!$xml)
{
realpressLogImport(" <span style='background-color:red;'>Can't read XML feed. </span>");
return false;
}
//var_dump(object2array($xml));
if (!isset($xml->property)&&!isset($xml->kyero))
{
realpressLogImport(" <span style='background-color:red;'>This feed isn't Kyero </span>");
return false;
}
//if have 1 property in XML
/*if (!isset($xml["root"]["property"][0]))
{
$propety_data=$xml["root"]["property"];
unset($xml["root"]["property"]);
$xml["root"]["property"][0]=$propety_data;
}*/
//foreach ($xml["root"]["property"] as $k=>$d)
foreach ($xml->property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
realpressLogImport ("Checking for the listing id=".$d["id"]." .. ");
//if current listing type in reserved types for this feed
if (array_key_exists($d["price_freq"], $listing_types))
{
//TODO: check each field on empty (in current view it's is_array)
//if incorrect setting in XML
if (is_array($d["id"])) $d["id"]="0";
//if desc is empty
if (is_array($d["desc"][$lang])) $d["desc"][$lang]="";
//check for existing current house id in DB
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["id"]."' limit 1";
//$house_id = $wpdb->get_var($sql);
//check for existing current house id in DB
$house_id = rpp_import::is_property_exists($d["id"],$current_user->ID,$import["id_import_feed"]);
//if have this property in DB then skip
if (!is_null($house_id)) {
//realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
//continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
//if add new property
if (!$update_property)
{
//if property has not selected country
if (!check_selected_country_to_import($d['country'],$d['town'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['country'].", Town:".$d['town']." </span>");
$prop_counter++;
}
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["price_freq"]]."', ";
//set property type
if (is_array($d["type"])&&(isset($d["type"][$lang])))
{
$prop_type=ucwords($d["type"][$lang]);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$propertyfeatures = ((isset($d["baths"]))?($d["baths"]. " Bathroom".(($d["baths"]>1)?"s":"").","):"");
$propertyfeatures .= ((isset($d["beds"]))?($d["beds"]. " Bedroom".(($d["beds"]>1)?"s":"").","):"");
$sql .= "propertyfeatures ='".stripslashes(rtrim($propertyfeatures,","))."', ";
//pool - add as feature
if (isset($d["pool"])&&$d["pool"]=="1")
{
//add "Pool" as listing feature is need it
$feature_name="Pool";
//TODO: add expetion to add feature 1 time per import
realpressAlterFeature($feature_name);
//add to database
$sql.= " listingfeatures = '".$feature_name."', ";
/* from Kyero feed
'1' denotes a pool is available,
missing tag denotes no pool is available
*/
}
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
//var_dump($sql);
if (!$debug)
{
check_for_mysql();
$result=$wpdb->query($wpdb->prepare($sql));
//if prepare function isnt working
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
//if update old property then show messaeg we updated property and get new property for analyzing
if ($update_property)
{
//get post id
$realPostId=RPP_DB::selectVal($table_prefix."realpresshouse","postid", array("id"=>$m_realHouseInsertID));
realpressLogImport (" <span style='background-color:green;'>Listing has been updated in DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
continue;
}
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
//$m_rp_listTitle = "Kyero Property ".$d["id"];
$m_rp_listTitle = $d["beds"]." Bed ".ucfirst($d["type"][$lang])." For Sale in ".ucfirst($d["town"]);
//add post data
//var_dump($d["desc"][$lang]);
$realPostId=rpp_import::add_post($d["desc"][$lang],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
//realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span>");
realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
if ($import_images && class_exists('nggAdmin'))
{
$newgallery="kyero-prop-".$d["id"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","url",$newgallery,$debug);
}
}
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
realMessage("XML file has been imported.");
}
//do PPF Feed
function realpressImportPPF($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$show_sql=false;
$import_images=true;
//database fields for realpress table
// key - PPF field
// value - realpress field
$db_fiels = array (
"dateupdate" => array ("value"=>"listdate"),
"price" => array ("value"=>"price_total"),
"nobeds" => array ("value"=>"beds"),
"nobathrooms" => array ("value"=>"baths"),
"summary" => array ("value"=>"description"),
"city" => array ("value"=>"city"),
"county" => array ("value"=>"state"),
"postcode" => array ("value"=>"postcode"),
"address1" => array ("value"=>"stree"),
"address1" => array ("value"=>"addressnumber"),
// "location_id" => array ("value"=>"mls"),
// "id" => array ("value"=>"mls"),
"propertytype" => array ("value"=>"propertytype"),
"region" => array ("value"=>"neighborhood"),
//"address1" => array ("value"=>"mls"),
array ("id"=>"refno","field"=>"['property']") => array ("value"=>"mls"),
//array ("address1","address2","address3") => array ("value"=>"stree"),
array ("value"=>"country","default"=>"United Kingdom"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
);
//listing types support by PPF
//key - PPF type
//value - Realpres type
$listing_types= array(
"sale" => "For Sale",
"new_build" => "For Sale",
"Rental" => "Short Term Rental",
"Rental" => "Long Term Rental",
);
//property counter
$prop_counter=0;
//add new listing types if need it
realpressAlterListingType($listing_types);
//show progress
realpressLogImport("Add new listing types, if need it .. ");
//var_dump($wpdb);
//$wpdb->
$wpdb_temp=$wpdb;
//postmeta
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
//show progress
realpressLogImport("Get feed into array ");
//var_dump($xml);
//die;
//if not PPF
//if (!isset($xml["root"]["property"])&&!isset($xml["root"]["PPF"])) return false;
if (!$xml)
{
realpressLogImport(" <span style='background-color:red;'>Can't read XML feed. </span>");
return false;
}
//var_dump(object2array($xml));
if (!isset($xml->properties)&&!isset($xml->PPF))
{
realpressLogImport(" <span style='background-color:red;'>This feed isn't PPF </span>");
return false;
}
//if have 1 property in XML
/*if (!isset($xml["root"]["property"][0]))
{
$propety_data=$xml["root"]["property"];
unset($xml["root"]["property"]);
$xml["root"]["property"][0]=$propety_data;
}*/
//foreach ($xml["root"]["properties"]["property"] as $k=>$d1)
foreach ($xml->properties->property as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
realpressLogImport ("Checking for the listing id=".$d["id"]." .. ");
//if current listing type in reserved types for this feed
if (array_key_exists($d["saletype"], $listing_types))
{
//TODO: check each field on empty (in current view it's is_array)
//if incorrect setting in XML
if (is_array($d["id"])) $d["id"]="0";
//if desc is empty
if (is_array($d["summary"][$lang])) $d["summary"][$lang]="";
//check for existing current house id in DB
//$sql = "select id from `".$table_prefix."realpresshouse` where `mls` = '".$d["id"]."' limit 1";
//$house_id = $wpdb->get_var($sql);
//check for existing current house id in DB
$house_id = rpp_import::is_property_exists($d["id"],$current_user->ID,$import["id_import_feed"]);
//if have this property in DB then skip
if (!is_null($house_id)) {
//realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already </span>");
//continue;
$update_property=true;
$m_realHouseInsertID=$house_id;
realpressLogImport (" <span style='background-color:red;'>Current listing has in DB already. Updating it. </span>");
}
//if add new property
if (!$update_property)
{
//if property has not selected country
if (!check_selected_country_to_import($d['country'],$d['city'],$import["import_country"])) continue;
realpressLogImport (" <span style='background-color:green;'>We dont't have current listing in DB. Adding it </span>");
realpressLogImport (" <span style='background-color:green;'>Country:".$d['country'].", Town:".$d['city']." </span>");
$prop_counter++;
}
$sql = ((!$update_property)?"insert into ":"update ").$table_prefix."realpresshouse set ";
//convert existing data to sql
$sql.=rpp_import::array_2_sql($db_fiels,$d,$lang);
//set listing type
$sql.= "listingtype = '".$listing_types[$d["saletype"]]."', ";
//set property type
if (is_array($d["propertytype"])&&(isset($d["propertytype"][$lang])))
{
$prop_type=ucwords($d["propertytype"][$lang]);
$sql.= "propertytype = '".$prop_type."', ";
realpressAlterPropertyType($prop_type);
}
$propertyfeatures = ((isset($d["nobathrooms"]))?($d["nobathrooms"]. " Bathroom".(($d["nobathrooms"]>1)?"s":"").","):"");
$propertyfeatures .= ((isset($d["nobeds"]))?($d["nobeds"]. " Bedroom".(($d["nobeds"]>1)?"s":"").","):"");
$sql .= "propertyfeatures ='".stripslashes(rtrim($propertyfeatures,","))."', ";
//pool - add as feature
if (isset($d["pool"])&&$d["pool"]=="1")
{
//add "Pool" as listing feature is need it
$feature_name="Pool";
//TODO: add expetion to add feature 1 time per import
realpressAlterFeature($feature_name);
//add to database
$sql.= " listingfeatures = '".$feature_name."', ";
/* from PPF feed
'1' denotes a pool is available,
missing tag denotes no pool is available
*/
}
//for cron
if(isset($import["id_import_feed"])) $sql.= " id_import_feed = '".$import["id_import_feed"]."', ";
$sql = rtrim($sql,", ");
//if update old property
if ($update_property) $sql .= " where id=".$m_realHouseInsertID;
//var_dump($sql);
if (!$debug)
{
check_for_mysql();
$result=$wpdb->query($wpdb->prepare($sql));
//if prepare function isnt working
if (!$result) $result=$wpdb->query($sql);
//show sql if need it
if ($show_sql) echo "<br/> ".$sql.var_dump($result)."<br/> ";
//if update old property then show messaeg we updated property and get new property for analyzing
if ($update_property)
{
//get post id
$realPostId=RPP_DB::selectVal($table_prefix."realpresshouse","postid", array("id"=>$m_realHouseInsertID));
realpressLogImport (" <span style='background-color:green;'>Listing has been updated in DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
continue;
}
$m_realHouseInsertID = mysql_insert_id();
//realpresslist
$sqlUpdateIt ="INSERT INTO ".$table_prefix."realpresslist (houseid, wp_userid, total_view)
VALUES ('".$m_realHouseInsertID."','".$current_user->ID."','0')";
$result=$wpdb->query($sqlUpdateIt);
//show sql if need it
if ($show_sql) echo "<br/> ".$sqlUpdateIt.var_dump($result)."<br/> ";
$m_realListingInsertID = mysql_insert_id();
//$m_rp_listTitle = "PPF Property ".$d["id"];
$m_rp_listTitle = ucfirst($d["city"])." - ".$d["nobeds"]." bed ".ucfirst($d["propertytype"][$lang]);
//add post data
//var_dump($d["desc"][$lang]);
$realPostId=rpp_import::add_post($d["summary"][$lang],$m_realHouseInsertID,$m_rp_listTitle);
}
//show progress
//realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span>");
realpressLogImport (" <span style='background-color:green;'>Listing has been saved to DB ..</span> <a href='".WP_SITEURL."?p=".$realPostId."'>check it</a>");
//upload property images
if ($import_images && class_exists('nggAdmin'))
{
$newgallery="PPF-prop-".$d["id"];
if (isset($d["images"]["image"])&&is_array($d["images"]["image"]))
{
rpp_import::add_gallery($realPostId,$d["images"]["image"],"url","url",$newgallery,$debug);
}
}
if ($debug) var_dump($realPostId);
}
//if import limit
if ($prop_counter == $import["import_count"]) break;
}
realMessage("XML file has been imported.");
}
//added 2011.06.15
function realpressImportCamBank($lang,$import,$debug)
{
global $wpdb,$table_prefix,$current_user, $ngg;
$feed_name="Cam_bank";
$show_sql=false;
$import_images=true;
$listing_features_arr=array("has_pool"=>"Pool","has_garden"=>"Garden","has_garage"=>"Garage");
//database fields for realpress table
// key - ImportResales field
// value - realpress field
$db_fiels = array (
array ("type"=>"eval","field"=>"['fecha']","value"=>"listdate"),
array ("type"=>"eval","field"=>"['precioMostrarWeb']","value"=>"price_total"),
array ("type"=>"eval","field"=>"['Dormitorios']","value"=>"beds"),
array ("type"=>"eval","field"=>"['BaƱos']","value"=>"baths"),
array ("type"=>"eval","action"=>"nl2br","field"=>"['Description']","value"=>"description"),
//array ("type"=>"eval","field"=>"['currency']","value"=>"currencyid"),
// "location_id" => array ("value"=>"mls"),
array ("type"=>"eval","field"=>"['reference']","value"=>"mls"),
//array ("value"=>"propertytype"),
//array ("type"=>"eval","field"=>"['builtYear']","value"=>"yearbuild"),
//array ("type"=>"eval","field"=>"['address']['address1']","value"=>"addressnumber"),
//array ("type"=>"eval","field"=>array("['address']['address2']","['address']['address3']"),"value"=>"stree"),
//array ("type"=>"eval","field"=>"['address']['postalCode']","value"=>"postcode"),
array ("type"=>"eval","field"=>"['area']","value"=>"city"),
array ("type"=>"eval","field"=>"['barrio']","value"=>"neighborhood"),
array ("type"=>"eval","field"=>"['provincia']","value"=>"state"),
array ("type"=>"eval","field"=>"['pais']","value"=>"country","default"=>"Spain"),
array ("value"=>"wp_userid","default"=>$current_user->ID),
//array ("type"=>"eval","field"=>"['Description']['title']","value"=>"title"),
);
//$_post_title=eval()
//listing types support by Kyero
//key - ImportResales type
//value - Realpres type
$listing_types= array(
"residential for sale" => "For Sale",
"Residential For Sale" => "For Sale",
"week" => "Short Term Rental",
"month" => "Long Term Rental",
);
//property counter
$prop_counter=0;
$xml = simplexml_load_file ($import["import_feed"],"SimpleXMLElement",LIBXML_NOCDATA);
check_for_mysql();
//var_dump($xml);
if (!isset($xml->productos_XML_Ingles)){
realpressLogImport("<span style='background-color:red;'>It's not CamBank Feed. Exit.</span>");
return false;
}
foreach ($xml->productos_XML_Ingles as $k=>$d1)
{
//trigger to update or add property
$update_property=false;
//covert simple XML object to standard array
$d=object2array($d1);
if (isset($d["idVivienda"])) $d["reference"]=$d["idVivienda"];
else {
realpressLogImport("<span style='background-color:red;'>Current Property doesnot have ID. Read next Property.</span>");
continue;
}
realpressLogImport ("Checking for the listing id=".$d["reference"]." .. ");
$d["category"]="residential for sale";
//if current listing type in reserved types for this feed
if (array_key_exists($d["category"], $listing_types))
{
//if incorrect setting i