/** * The main dispatcher for ajax based editing of maps * * @param int $p_mapId * @param int $p_languageId * @param int $p_articleNumber * @param mixed $p_map * @param mixed $p_remove * @param mixed $p_insert * @param mixed $p_locations * @param mixed $p_contents * @param mixed $p_order * * @return array */ public static function StoreMapData($p_mapId, $p_languageId, $p_articleNumber, $p_map = '', $p_remove = '', $p_insert = '', $p_locations = '', $p_contents = '', $p_order = '') { Geo_MapLocation::CleanFound(); $security_problem = array('status' => '403', 'description' => 'Invalid security token!'); $unknown_request = array('status' => '404', 'description' => 'Unknown request!'); $data_wrong = array('status' => '404', 'description' => 'Wrong data.'); $status = true; if ('' != $p_map) { $map_data = array(); try { $p_map = str_replace('%2B', '+', $p_map); $p_map = str_replace('%2F', '/', $p_map); $map_json = base64_decode($p_map); $map_data = json_decode($map_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::UpdateMap($p_mapId, $p_articleNumber, $map_data); } } if (!$status) { return $data_wrong; } if ('' != $p_remove) { $remove_data = array(); try { $p_remove = str_replace('%2B', '+', $p_remove); $p_remove = str_replace('%2F', '/', $p_remove); $remove_json = base64_decode($p_remove); $remove_data = json_decode($remove_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::RemovePoints($p_mapId, $remove_data); } } if (!$status) { return $data_wrong; } $new_ids = array(); if ('' != $p_insert) { $insert_data = array(); try { $p_insert = str_replace('%2B', '+', $p_insert); $p_insert = str_replace('%2F', '/', $p_insert); $insert_json = base64_decode($p_insert); $insert_data = json_decode($insert_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::InsertPoints($p_mapId, $p_languageId, $p_articleNumber, $insert_data, $new_ids); } } if (!$status) { return $data_wrong; } if ('' != $p_locations) { $locations_data = array(); try { $p_locations = str_replace('%2B', '+', $p_locations); $p_locations = str_replace('%2F', '/', $p_locations); $locations_json = base64_decode($p_locations); $locations_data = json_decode($locations_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateLocations($p_mapId, $locations_data); } } if (!$status) { return $data_wrong; } if ('' != $p_contents) { $contents_data = array(); try { $p_contents = str_replace('%2B', '+', $p_contents); $p_contents = str_replace('%2F', '/', $p_contents); $contents_json = base64_decode($p_contents); $contents_data = json_decode($contents_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateContents($p_mapId, $contents_data); } } if (!$status) { return $data_wrong; } if ('' != $p_order) { $order_data = array(); try { $p_order = str_replace('%2B', '+', $p_order); $p_order = str_replace('%2F', '/', $p_order); $order_json = base64_decode($p_order); $order_data = json_decode($order_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateOrder($p_mapId, $order_data, $new_ids); } } if (!$status) { return $data_wrong; } $geo_map_usage = Geo_Map::ReadMapInfo('map', $p_mapId); $poi_count = 0; $p_constraints = array(); $leftOperand = 'as_array'; $rightOperand = true; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'preview'; $rightOperand = false; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'text_only'; $rightOperand = false; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'language'; $rightOperand = $p_languageId; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'map'; $rightOperand = $p_mapId; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $found_list = array(); $found_objs = Geo_MapLocation::GetListExt($p_constraints, (array) null, 0, 0, $poi_count, false, $found_list); $res_array = array('status' => '200', 'pois' => $found_list, 'map' => $geo_map_usage); return $res_array; }
/** * The main dispatcher for ajax based editing of maps * * @param int $p_mapId * @param int $p_languageId * @param int $p_articleNumber * @param mixed $p_map * @param mixed $p_remove * @param mixed $p_insert * @param mixed $p_locations * @param mixed $p_contents * @param mixed $p_order * * @return array */ public static function StoreMapData($p_mapId, $p_languageId, $p_articleNumber, $p_map = "", $p_remove = "", $p_insert = "", $p_locations = "", $p_contents = "", $p_order = "") { $security_problem = array("status" => "403", "description" => "Invalid security token!"); $unknown_request = array("status" => "404", "description" => "Unknown request!"); $data_wrong = array("status" => "404", "description" => "Wrong data."); $status = true; if ("" != $p_map) { $map_data = array(); try { $p_map = str_replace("%2B", "+", $p_map); $p_map = str_replace("%2F", "/", $p_map); $map_json = base64_decode($p_map); $map_data = json_decode($map_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::UpdateMap($p_mapId, $p_articleNumber, $map_data); } } if (!$status) { return $data_wrong; } if ("" != $p_remove) { $remove_data = array(); try { $p_remove = str_replace("%2B", "+", $p_remove); $p_remove = str_replace("%2F", "/", $p_remove); $remove_json = base64_decode($p_remove); $remove_data = json_decode($remove_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::RemovePoints($p_mapId, $remove_data); } } if (!$status) { return $data_wrong; } $new_ids = array(); if ("" != $p_insert) { $insert_data = array(); try { $p_insert = str_replace("%2B", "+", $p_insert); $p_insert = str_replace("%2F", "/", $p_insert); $insert_json = base64_decode($p_insert); $insert_data = json_decode($insert_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Map::InsertPoints($p_mapId, $p_languageId, $p_articleNumber, $insert_data, $new_ids); } } if (!$status) { return $data_wrong; } if ("" != $p_locations) { $locations_data = array(); try { $p_locations = str_replace("%2B", "+", $p_locations); $p_locations = str_replace("%2F", "/", $p_locations); $locations_json = base64_decode($p_locations); $locations_data = json_decode($locations_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateLocations($p_mapId, $locations_data); } } if (!$status) { return $data_wrong; } if ("" != $p_contents) { $contents_data = array(); try { $p_contents = str_replace("%2B", "+", $p_contents); $p_contents = str_replace("%2F", "/", $p_contents); $contents_json = base64_decode($p_contents); $contents_data = json_decode($contents_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateContents($p_mapId, $contents_data); } } if (!$status) { return $data_wrong; } if ("" != $p_order) { $order_data = array(); try { $p_order = str_replace("%2B", "+", $p_order); $p_order = str_replace("%2F", "/", $p_order); $order_json = base64_decode($p_order); $order_data = json_decode($order_json); } catch (Exception $exc) { $status = false; } if ($status) { $status = Geo_Location::UpdateOrder($p_mapId, $order_data, $new_ids); } } if (!$status) { return $data_wrong; } $geo_map_usage = Geo_Map::ReadMapInfo("map", $p_mapId); $found_list = Geo_Map::ReadMapPoints($p_mapId, $p_languageId); $res_array = array("status" => "200", "pois" => $found_list, "map" => $geo_map_usage); return $res_array; } // fn StoreMapData