]*>)(.*)()"; $replacement = "\\1\\2" . $element_name . "" . $user . "\\3"; $filter = mb_eregi_replace($pattern, $replacement, $filter); } else { $e = new mb_exception("mod_wfsGazetteerEditor_server: checkAccessConstraint: invalid value of variable containing user information!"); } } else { $e = new mb_exception("mod_wfsGazetteerEditor_server: checkAccessConstraint: var name is not valid! (" . $auth_varname . ")"); } } return $filter; } if ($command == "getWfsConf") { $wfsConfIdString = $_GET["wfsConfIdString"]; if ($wfsConfIdString != "") { //array_keys(array_flip()) produces an array with unique entries $wfsConfIdArray = array_keys(array_flip(mb_split(",", $wfsConfIdString))); } else { echo "{}"; die(); } $obj = new WfsConf(); $obj->load($wfsConfIdArray); $json = new Services_JSON(); $output = $json->encode($obj->confArray); echo $output; } else if ($command == "getSearchResults") { $wfs_conf_id = $_REQUEST["wfs_conf_id"]; $backlink = $_REQUEST["backlink"]; $frame = $_REQUEST["frame"]; $filter = $_REQUEST["filter"]; $url = $_REQUEST["url"]; /* wfs_conf */ $sql = "SELECT * FROM wfs_conf JOIN wfs ON wfs_conf.fkey_wfs_id = wfs.wfs_id "; $sql .= "WHERE wfs_conf.wfs_conf_id = $1"; $v = array($wfs_conf_id); $t = array('i'); $res = db_prep_query($sql,$v,$t); if ($row = db_fetch_array($res)) { $g_res_style = $row["g_res_style"]; } else { die("wfs_conf " . $wfs_conf_id . "data not available"); } /* wfs_conf_element */ $sql = "SELECT * FROM wfs_conf_element "; $sql .= "JOIN wfs_element ON wfs_conf_element.f_id = wfs_element.element_id "; $sql .= "WHERE wfs_conf_element.fkey_wfs_conf_id = $1 "; $sql .= "AND wfs_conf_element.f_show = 1 ORDER BY wfs_conf_element.f_respos;"; $v = array($wfs_conf_id); $t = array('i'); #echo $sql; $res = db_prep_query($sql,$v,$t); $col = array(); while ($row = db_fetch_array($res)) { array_push($col, $row["element_name"]); } if (count($col) == 0) { die("wfs_conf_element data not available"); } // append authorisation condition to filter $filter = checkAccessConstraint($filter, $wfs_conf_id); $admin = new administration(); $req = urldecode($url).urlencode($admin->char_decode(stripslashes($filter))); $mygml = new gml2(); $mygml->parseFile($req); if (!empty($exportToShape)) { $filenamePrefix = md5(microtime()); $mygml->toShape($filenamePrefix); header("Content-Type: application/json; charset=utf-8"); echo '{"filename": "' . $filenamePrefix . '.zip"}'; } else { header("Content-Type: application/json; charset=utf-8"); echo $mygml->toGeoJSON(); } } else if($command == "getFeature"){ $admin = new administration(); $wfsGetFeature=$admin->checkURL($wfsGetFeature); $url = $wfsGetFeature."REQUEST=getFeature&VERSION=1.0.0&SERVICE=WFS&MAXFEATURES=20". "&typename=".$wfsFeatureTypeName; //."&propertyname=".$wfsGetFeatureAttr; //"&filter=".$wfsGetFeatureAttr.""; #echo $url; $e = new mb_exception("URL: " . $url); $x = new connector($url); $data = $x->file; //$data = file_get_contents($url); $parser = xml_parser_create(); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,"UTF-8"); xml_parse_into_struct($parser,$data,$values,$tags); $code = xml_get_error_code($parser); xml_parser_free($parser); if ($code) { $line = xml_get_current_line_number($parser); $mb_exception = new mb_exception(xml_error_string($code) . " in line " . $line); } function sepNameSpace($s){ $c = mb_strpos($s,":"); if($c>0){ return mb_substr($s,$c+1); } else{ return $s; } } $featureNameToUpper = mb_strtoupper($wfsGetFeatureAttr); $featureValuesArray = array(); foreach ($values as $element) { if(mb_strtoupper($element[tag]) == $featureNameToUpper || sepNameSpace(mb_strtoupper($element[tag])) == $featureNameToUpper){ array_push($featureValuesArray, $element[value]); } } // $featureValues = join("|", $featureValuesArray); $json = new Services_JSON(); echo $json->encode($featureValuesArray); // the way below only works with propertyname in REQUEST-Url // $sxe = new SimpleXMLElement($data); // // list($ns, $ns_url) = explode(":", $wfsFeatureTypeName); // // $sxe->registerXPathNamespace($ns, 'http://namespace_url_default'); // // $m = array(); // $m['columnValues'] = $sxe->xpath('//'.$ns.':'.$wfsGetFeatureAttr); // // $columnValues = array(); // $i=0; // foreach ($m['columnValues'] as $columnValue) { // // $domNode = dom_import_simplexml($columnValue); // $columnValues[$i]=$domNode->nodeValue; // // $i++; // // $json = new Services_Json(); // $jsonEncodedValue = $json->encode($columnValues); // } // echo $jsonEncodedValue; } else { echo "please enter a valid command."; } ?>