24 defined(
'RVP_PHP_SDK_ACCESS' ) or die ( 'Cannot Execute Directly' );
26 require_once(dirname(__FILE__).'/a_rvp_php_sdk_object.class.php');
44 $in_new_child_ids = NULL
46 $owner_id = isset($this->_object_data->owner_id) ? intval($this->_object_data->owner_id) : 0;
47 $latitude = isset($this->_object_data->raw_latitude) ? floatval($this->_object_data->raw_latitude) : (isset($this->_object_data->latitude) ? floatval($this->_object_data->latitude) : NULL);
48 $longitude = isset($this->_object_data->raw_longitude) ? floatval($this->_object_data->raw_longitude) : (isset($this->_object_data->longitude) ? floatval($this->_object_data->longitude) : NULL);
49 $fuzz_factor = isset($this->_object_data->fuzz_factor) ? floatval($this->_object_data->fuzz_factor) : NULL;
50 $can_see_through_the_fuzz = isset($this->_object_data->can_see_through_the_fuzz) ? intval($this->_object_data->can_see_through_the_fuzz) : NULL;
52 $put_args =
'&owner_id='.$owner_id.(isset($latitude) ? (
'&latitude='.$latitude) :
'').(isset($longitude) ? (
'&longitude='.$longitude) :
'').(isset($fuzz_factor) ?
'&fuzz_factor='.$fuzz_factor :
'').(isset($can_see_through_the_fuzz) ?
'&can_see_through_the_fuzz='.$can_see_through_the_fuzz :
'');
54 if (isset($in_new_child_ids) && is_array($in_new_child_ids) && count($in_new_child_ids)) {
55 $in_new_child_ids = array_filter(array_map(
'intval', $in_new_child_ids),
function($i) {
return 0 != intval($i); });
56 if (count($in_new_child_ids)) {
57 $put_args .=
'&child_ids='.implode(
',', $in_new_child_ids);
61 $payload = isset($in_payload) ? $in_payload : NULL;
63 $ret = parent::_save_data($put_args.$in_args, $payload);
79 $in_detailed_data =
false,
80 $in_plugin_path =
'baseline' 82 parent::__construct($in_sdk_object, $in_id, $in_data, $in_detailed_data, $in_plugin_path);
96 if (isset($this->_object_data) && isset($this->_object_data->coords)) {
97 $temp = explode(
',', $this->_object_data->coords);
98 if (isset($temp) && is_array($temp) && (1 < count($temp))) {
100 $ret[
'latitude'] = floatval($temp[0]);
101 $ret[
'longitude'] = floatval($temp[1]);
119 $this->_load_data(
false,
true);
121 if (isset($this->_object_data)) {
122 if ((isset($this->_object_data->raw_latitude) && isset($this->_object_data->raw_longitude)) || (isset($this->_object_data->fuzzy) && $this->_object_data->fuzzy)) {
123 $this->_object_data->raw_latitude = $in_latitude;
124 $this->_object_data->raw_longitude = $in_longitude;
126 $this->_object_data->latitude = $in_latitude;
127 $this->_object_data->longitude = $in_longitude;
130 $ret = $this->save_data();
145 $this->_load_data(
false,
true);
147 if (isset($this->_object_data) && isset($this->_object_data->distance_in_km)) {
148 $ret = floatval($this->_object_data->distance_in_km);
163 $this->_load_data(
false,
true);
165 if (isset($this->_object_data) && isset($this->_object_data->fuzzy) && $this->_object_data->fuzzy) {
181 $this->_load_data(
false,
true);
183 if (isset($this->_object_data) && isset($this->_object_data->fuzz_factor) && floatval($this->_object_data->fuzz_factor)) {
184 $ret = floatval($this->_object_data->fuzz_factor);
200 $this->_load_data(
false,
true);
202 $this->_object_data->fuzz_factor = $in_new_factor;
204 $ret = $this->save_data();
207 $this->_load_data(
true,
true);
223 $this->_load_data(
false,
true);
225 $this->_object_data->can_see_through_the_fuzz = $in_token_id;
227 $ret = $this->save_data();
230 $this->_load_data(
true,
true);
245 $this->_load_data(
false,
true);
247 if (isset($this->_object_data) && isset($this->_object_data->raw_latitude) && isset($this->_object_data->raw_longitude)) {
249 $ret[
'latitude'] = floatval($this->_object_data->raw_latitude);
250 $ret[
'longitude'] = floatval($this->_object_data->raw_longitude);
265 $this->_load_data(
false,
true);
267 if (isset($this->_object_data) && isset($this->_object_data->payload)) {
268 $payload_data = base64_decode($this->_object_data->payload);
271 if (base64_encode(base64_decode($payload_data)) == $payload_data) {
272 $payload_data = base64_decode($payload_data);
275 $ret = [
'data' => $payload_data];
277 if (isset($this->_object_data->payload_type)) {
278 $ret[
'type'] = str_replace(
';base64',
'', $this->_object_data->payload_type);
297 if ($in_payload_data) {
298 $temp_file = tempnam(sys_get_temp_dir(),
'RVP');
299 file_put_contents($temp_file , $in_payload_data);
300 $finfo = finfo_open(FILEINFO_MIME_TYPE);
301 $content_type = finfo_file($finfo, $temp_file);
303 $this->_object_data->payload_type = $content_type;
304 $payload = [
'data' => $in_payload_data,
'type' => $content_type];
306 $args =
'&remove_payload';
310 $ret = $this->_save_change_record(self::_save_data($args, $payload));
313 $ret = $this->_load_data(
true,
true);
315 $this->_load_data(
true,
true);
330 $this->_load_data(
false,
true);
332 if (isset($this->_object_data) && isset($this->_object_data->children)) {
333 $child_data = (array)$this->_object_data->children;
335 if (count($child_data)) {
359 $ret = $this->_save_change_record(self::_save_data(
'', NULL, $in_child_ids));
362 $ret = $this->force_reload();
364 $this->force_reload();
380 $this->_load_data(
false,
true,
true);
382 if (isset($this->_object_data) && isset($this->_object_data->parents)) {
383 $parent_data = $this->_object_data->parents;
385 if (isset($parent_data) && is_array($parent_data) && count($parent_data)) {
402 $ret = [
'object' => $this];
404 $this->_load_data(
false,
true);
406 if (isset($this->_object_data) && isset($this->_object_data->children)) {
407 $child_data = (array)$this->_object_data->children;
409 if (count($child_data)) {
410 $ret[
'children'] = [];
411 foreach ($child_data as $plugin) {
412 if (count($plugin)) {
413 $objects = $this->_sdk_object->get_objects($plugin);
415 if (is_array($objects) && count($objects)) {
416 foreach ($objects as $object) {
417 if (method_exists($object,
'get_hierarchy')) {
418 $ret[
'children'][] = $object->get_hierarchy();
set_payload( $in_payload_data)
_save_data( $in_args='', $in_payload=NULL, $in_new_child_ids=NULL)
set_can_see_through_the_fuzz( $in_token_id)
set_coords( $in_latitude, $in_longitude)
__construct( $in_sdk_object, $in_id, $in_data=NULL, $in_detailed_data=false, $in_plugin_path='baseline')
set_fuzz_factor( $in_new_factor)
set_new_children_ids( $in_child_ids)