]*>)(.*)()";
$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.";
}
?>