/** * Update the location for this node * * @return Node object (this) (or Error object) */ function updateLocation($location, $loccountry, $address1, $address2, $postcode) { global $DB, $CFG, $USER, $HUB_SQL; //check user owns the node try { $this->canedit(); } catch (Exception $e) { return access_denied_error(); } $dt = time(); $params = array(); $params[0] = $address1; $params[1] = $address2; $params[2] = $postcode; $params[3] = $location; $params[4] = $loccountry; $params[5] = $dt; $params[6] = $this->nodeid; $res = $DB->insert($HUB_SQL->DATAMODEL_NODE_LOCATION_UPDATE, $params); if ($res) { //try to geocode if ($location != "" && $loccountry != "" && ($location != $this->location || $loccountry != $this->countrycode || $address1 != $this->locationaddress1 || $address2 != $this->locationaddress2 || $postcode != $this->locationpostcode)) { $coords = geoCodeAddress($address1, $address2, $postcode, $location, $loccountry); if ($coords["lat"] != "" && $coords["lng"] != "") { $params = array(); $params[0] = $coords["lat"]; $params[1] = $coords["lng"]; $params[2] = $this->nodeid; $res = $DB->insert($HUB_SQL->DATAMODEL_NODE_LATLONG_UPDATE, $params); } else { $params = array(); $params[0] = null; $params[1] = null; $params[2] = $this->nodeid; $res = $DB->insert($HUB_SQL->DATAMODEL_NODE_LATLONG_UPDATE, $params); } } } else { return database_error(); } return $this->load(); }
/** * Geocode a location * * @uses $CFG * @param string $loc * @param string $cc country code for location * @return array */ function geoCode($loc, $cc) { return geoCodeAddress("", "", "", $loc, $cc); }