setSuccess(false); $ajaxResponse->setMessage($message); $ajaxResponse->send(); die; }; function getWfs ($wfsId = null) { $user = new User(Mapbender::session()->get("mb_user_id")); $wfsIdArray = $user->getOwnedWfs(); if (!is_null($wfsId) && !in_array($wfsId, $wfsIdArray)) { abort(_mb("You are not allowed to access this WFS.")); } return $wfsIdArray; } function getFeaturetype ($featuretypeId = null) { $user = new User(Mapbender::session()->get("mb_user_id")); $wfsIdArray = $user->getOwnedWfs(); if (!is_array($wfsIdArray) || count($wfsIdArray) === 0) { abort(_mb("No metadata sets available.")); } $wfsId = wfs::getWfsIdByFeaturetypeId($featuretypeId); if (is_null($wfsId) || !in_array($wfsId, $wfsIdArray)) { abort(_mb("You are not allowed to access this WFS " . $wfsId)); } return; } switch ($ajaxResponse->getMethod()) { case "getWfs" : $wfsIdArray = getWfs(); $wfsList = implode(",", $wfsIdArray); $sql = << array( "WFS ID", "Titel", "Timestamp", "Version" ), "data" => array() ); while ($row = db_fetch_row($res)) { // convert NULL to '', NULL values cause datatables to crash $walk = array_walk($row, create_function('&$s', '$s=strval($s);')); $resultObj["data"][]= $row; } $ajaxResponse->setResult($resultObj); $ajaxResponse->setSuccess(true); break; case "getWfsMetadata" : $wfsId = $ajaxResponse->getParameter("id"); getWfs($wfsId); $sql = <<id; $e = new mb_exception("user id:".$userId); $sql = <<setResult($resultObj); $ajaxResponse->setSuccess(true); break; case "getFeaturetypeMetadata" : $featuretypeId = $ajaxResponse->getParameter("id"); getFeaturetype($featuretypeId); $sql = << $value) { $resultObj[$key] = $value; } } $sql = <<setResult($resultObj); $ajaxResponse->setSuccess(true); break; case "getFeaturetypeByWfs" : $wfsId = $ajaxResponse->getParameter("id"); // getWms($wmsId); $sql = << $left, "right" => $right, #"parent" => $row["layer_parent"] !== "" ? intval($row["layer_parent"]) : null, #"pos" => intval($row["layer_pos"]), "attr" => array ( "featuretype_id" => intval($row["featuretype_id"]), "featuretype_name" => $row["featuretype_name"], "featuretype_title" => $row["featuretype_title"], "featuretype_abstract" => $row["featuretype_abstract"] ) ); } function addSubTree ($rows, $i, $left) { $nodeArray = array(); $addNewNode = true; for ($j = $i; $j < count($rows); $j++) { $row = $rows[$j]; $pos = $j; // first node of subtree if ($addNewNode) { $nodeArray[]= createNode($left, null, $row); $addNewNode = false; } else { $nodeArray[count($nodeArray)-1]["right"] = ++$left; $nodeArray[]= createNode(++$left, null, $row); } } if (is_null($nodeArray[count($nodeArray)-1]["right"])) { $nodeArray[count($nodeArray)-1]["right"] = ++$left; } return $nodeArray; } $nodeArray = addSubTree($rows, 0, 1); $resultObj = array( "nestedSets" => $nodeArray ); $ajaxResponse->setResult($resultObj); $ajaxResponse->setSuccess(true); break; case "save": $data = $ajaxResponse->getParameter("data"); try { $wfsId = intval($data->wfs->wfs_id); } catch (Exception $e) { $ajaxResponse->setSuccess(false); $ajaxResponse->setMessage(_mb("Invalid WFS ID.")); $ajaxResponse->send(); } getWfs($wfsId); $wfsFactory = new UniversalWfsFactory(); $wfs = $wfsFactory->createFromDb($wfsId, false); if (is_null($wfs)) { $ajaxResponse->setSuccess(false); $ajaxResponse->setMessage(_mb("Invalid WFS ID.")); $ajaxResponse->send(); } $columns = array( "summary", "title", "fees", "accessconstraints", "individualName", "positionName", "voice", "facsimile", "providerName", "deliveryPoint", "city", "administrativeArea", "postalCode", "country", "electronicMailAddress", "wfs_termsofuse", "timestamp", "timestamp_create", "network_access", "fkey_mb_group_id", "uuid" ); foreach ($columns as $c) { $value = $data->wfs->$c; if (!is_null($value)) { $wfs->$c = $value; } } try { $featuretypeId = intval($data->featuretype->featuretype_id); } catch (Exception $e) { } if ($featuretypeId) { $featuretype = $wfs->findFeatureTypeById($featuretypeId); if (!is_null($featuretype)) { $columns = array( "summary", "title", "featuretype_keyword", "featuretype_md_topic_category_id", "featuretype_inspire_category_id", "featuretype_custom_category_id" ); foreach ($columns as $c) { if ($c === "summary") { $value = $data->featuretype->featuretype_abstract; } elseif ($c === "title") { $value = $data->featuretype->featuretype_title; } else { $value = $data->featuretype->$c; } if ($c === "featuretype_keyword") { $featuretype->$c = explode(",", $value); foreach ($featuretype->$c as &$val) { $val = trim($val); } } elseif ($c === "featuretype_md_topic_category_id" || $c === "featuretype_inspire_category_id" || $c === "featuretype_custom_category_id" ) { if (!is_array($value)) { $featuretype->$c = array($value); } else { $featuretype->$c = $value; } } else { if (!is_null($value)) { $featuretype->$c = $value; } } } } } if ($wfs->network_access == "on") { $wfs->network_access = intval('1'); } else { $wfs->network_access = intval('0'); } $wfs->update(); $ajaxResponse->setMessage("Updated WFS metadata for ID " . $wfsId); $ajaxResponse->setSuccess(true); break; default: $ajaxResponse->setSuccess(false); $ajaxResponse->setMessage(_mb("An unknown error occured.")); break; } $ajaxResponse->send(); ?>