[Mapbender-commits] r8329 - in trunk/mapbender: http/classes
http/plugins resources/db/pgsql/UTF-8/update
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Thu Apr 26 10:09:01 EDT 2012
Author: armin11
Date: 2012-04-26 07:09:01 -0700 (Thu, 26 Apr 2012)
New Revision: 8329
Modified:
trunk/mapbender/http/classes/class_wfsToDb.php
trunk/mapbender/http/classes/class_wfs_1_1_factory.php
trunk/mapbender/http/plugins/mb_metadata_featuretype.js
trunk/mapbender/http/plugins/mb_metadata_featuretype.php
trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js
trunk/mapbender/http/plugins/mb_metadata_layer.js
trunk/mapbender/http/plugins/mb_metadata_layerTree.js
trunk/mapbender/http/plugins/mb_metadata_wfs_server.php
trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
Log:
Initial things to add service - data - metadata coupling to wfs to support inspire download services.
Modified: trunk/mapbender/http/classes/class_wfsToDb.php
===================================================================
--- trunk/mapbender/http/classes/class_wfsToDb.php 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/classes/class_wfsToDb.php 2012-04-26 14:09:01 UTC (rev 8329)
@@ -50,8 +50,13 @@
$sql = "INSERT INTO wfs (wfs_version, wfs_name, wfs_title, wfs_abstract, ";
$sql .= "wfs_getcapabilities, wfs_getcapabilities_doc, wfs_upload_url, ";
$sql .= "wfs_describefeaturetype, wfs_getfeature, wfs_transaction, fees, ";
- $sql .= "accessconstraints, wfs_owner, wfs_timestamp, uuid) ";
- $sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14,$15)";
+ $sql .= "accessconstraints, ";
+ $sql .= "individualname , positionname , providername , ";
+ $sql .= "city , deliverypoint , administrativearea , ";
+ $sql .= "postalcode , voice , facsimile , ";
+ $sql .= "electronicmailaddress , country , ";
+ $sql .= "wfs_owner, wfs_timestamp, wfs_timestamp_create, uuid) ";
+ $sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14 ,$15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27)";
$v = array(
$aWfs->getVersion(),
@@ -66,12 +71,24 @@
$aWfs->transaction,
$aWfs->fees,
$aWfs->accessconstraints,
+ $aWfs->individualName,
+ $aWfs->positionName,
+ $aWfs->providerName,
+ $aWfs->city,
+ $aWfs->deliveryPoint,
+ $aWfs->administrativeArea,
+ $aWfs->postalCode,
+ $aWfs->voice,
+ $aWfs->facsimile,
+ $aWfs->electronicMailAddress,
+ $aWfs->country,
Mapbender::session()->get("mb_user_id"),
strtotime("now"),
+ strtotime("now"),
$uuid
);
- $t = array('s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 'i', 'i','s');
+ $t = array('s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 'i', 'i','i','s');
$res = db_prep_query($sql, $v, $t);
Modified: trunk/mapbender/http/classes/class_wfs_1_1_factory.php
===================================================================
--- trunk/mapbender/http/classes/class_wfs_1_1_factory.php 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/classes/class_wfs_1_1_factory.php 2012-04-26 14:09:01 UTC (rev 8329)
@@ -71,8 +71,10 @@
$url = $aWfs->describeFeatureType .
$aWfs->getConjunctionCharacter($aWfs->describeFeatureType) .
implode("&", $paramArray);
-
+
$xml = $this->get($url);
+ //parse result to see if it is a real featuretype description
+
return $this->createFeatureTypeFromXml ($xml, $aWfs, $featureTypeName);
}
@@ -87,6 +89,7 @@
$doc = new DOMDocument();
$doc->loadXML($xml);
+ $e = new mb_exception($xml);
$xpath = new DOMXpath($doc);
$xpath->registerNamespace("xs","http://www.w3.org/2001/XMLSchema");
@@ -196,7 +199,39 @@
if($tag == "ACCESSCONSTRAINTS"){
$myWfs->accessconstraints = $element[value];
}
-
+ if($tag == "INDIVIDUALNAME"){
+ $myWfs->individualName = $element[value];
+ }
+ if($tag == "POSITIONNAME"){
+ $myWfs->positionName = $element[value];
+ }
+ if($tag == "PROVIDERNAME"){
+ $myWfs->providerName = $element[value];
+ }
+ if($tag == "CITY"){
+ $myWfs->city = $element[value];
+ }
+ if($tag == "DELIVERYPOINT"){
+ $myWfs->deliveryPoint = $element[value];
+ }
+ if($tag == "ADMINISTRATIVEAREA"){
+ $myWfs->administrativeArea = $element[value];
+ }
+ if($tag == "POSTALCODE"){
+ $myWfs->postalCode = $element[value];
+ }
+ if($tag == "VOICE"){
+ $myWfs->voice = $element[value];
+ }
+ if($tag == "FACSIMILE"){
+ $myWfs->facsimile = $element[value];
+ }
+ if($tag == "ELECTRONICMAILADDRESS"){
+ $myWfs->electronicMailAddress = $element[value];
+ }
+ if($tag == "COUNTRY"){
+ $myWfs->country = $element[value];
+ }
if($tag == "OPERATION" && $element[type] == "open"){
switch ($element[attributes][name]) {
case "GetCapabilities" :
@@ -213,6 +248,7 @@
break;
}
}
+
# getCapabilities
if($section == "getcapabilities" && $tag == "GET"){
$myWfs->getCapabilities = html_entity_decode($element[attributes]["xlink:href"]);
@@ -255,9 +291,13 @@
if($section == "featuretype" && $tag == "ABSTRACT"){
$featuretype_abstract = $element[value];
}
+
if($section == "featuretype" && $tag == "DEFAULTSRS"){
$featuretype_srs = $element[value];
-
+ $e = new mb_notice("class_wfs_1_1_factory.php: parse featuretype ".$featuretype_name);
+ foreach ( $featureTypeNsArray as $currentNamespace) {
+ $e = new mb_notice("class_wfs_1_1_factory.php: namespace: ".$currentNamespace);
+ }
// Do not add defective featuretypes
try {
$currentFeatureType = $this->createFeatureTypeFromUrlGet($myWfs, $featuretype_name, $featureTypeNsArray);
@@ -271,10 +311,11 @@
}
}
catch (Exception $e) {
- new mb_exception("Failed to load featuretype " . $featuretype_name);
+ $e = new mb_exception("Failed to load featuretype " . $featuretype_name);
}
}
}
+
if (!$myWfs->title) {
$myWfs->title = "Untitled";
}
Modified: trunk/mapbender/http/plugins/mb_metadata_featuretype.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretype.js 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretype.js 2012-04-26 14:09:01 UTC (rev 8329)
@@ -22,7 +22,7 @@
var $metadataFeaturetype = $(this);
var $metadataForm = $("<form>No featuretype selected.</form>").appendTo($metadataFeaturetype);
-var MetadataLayerApi = function (o) {
+var MetadataFeaturetypeApi = function (o) {
var that = this;
var validator;
var formReady = false;
@@ -87,12 +87,39 @@
return;
}
$metadataForm.easyform("fill", obj);
+ //delete entries of #featuretype_id_p if given
+ $('#featuretype_id_p').children().remove();
+ $('#featuretype_id_p').append('<a target=\"_blank\"href=\"../php/mod_showMetadata.php?resource=featuretype&layout=tabs&id='+featuretypeId+'\">Metadata Preview Featuretype '+featuretypeId+'</a>');
+ //delete metadataURL entries
+ $('.metadataEntry').remove();
+ //fill MetadataURLs into metadata_selectbox_id
+ that.fillMetadataURLs(obj);
that.valid();
that.enableResetButton();
}
});
req.send();
};
+ //function generate updated metadataUrl entries
+ this.fillMetadataURLs = function (obj) {
+ featuretypeId = obj.featuretype_id;
+ //for size of md_metadata records:
+ for (i=0;i<obj.md_metadata.metadata_id.length;i++) {
+ if (obj.md_metadata.origin[i] == "capabilities") {
+ $("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/osgeo_graphics/geosilk/server_map.png' title='capabilities'/></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td></td></tr>").appendTo($("#metadataTable"));
+ }
+ if (obj.md_metadata.origin[i] == "external") {
+ $("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/osgeo_graphics/geosilk/link.png' title='linkage'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img class='' title='edit' src='../img/pencil.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",false);return false;'/></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+ }
+ if (obj.md_metadata.origin[i] == "upload") {
+ $("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/button_blue_red/up.png' title='uploaded data'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+ }
+ if (obj.md_metadata.origin[i] == "metador") {
+ $("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/gnome/edit-select-all.png' title='metadata'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img class='' title='edit' src='../img/pencil.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",false);return false;'/></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+ }
+ }
+ $("<img class='metadataEntry' title='new' src='../img/add.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",true);return false;'/>").appendTo($("#metadataTable"));
+ }
this.enableResetButton = function () {
$("#resetIsoTopicCats").click(function () {
@@ -119,13 +146,22 @@
});
};
+ this.getWfsId = function() {
+ return wfsId;
+ }
this.init = function (obj) {
delete featuretypeId;
+ //delete metadataURL entries
+ $('.metadataEntry').remove();
$metadataForm.easyform("reset");
wfsId = obj;
-
+
+ if (!wfsId) {
+ return;
+ }
+
var formData = arguments.length >= 2 ? arguments[1] : undefined;
if (!formReady) {
@@ -146,12 +182,6 @@
wfsId: wfsId
});
formReady = true;
-
- // select layer in tree if set
-
- // init map
-
- // fill layer form if set
});
return;
}
@@ -174,4 +204,4 @@
});
};
-$metadataFeaturetype.mapbender(new MetadataLayerApi(options));
+$metadataFeaturetype.mapbender(new MetadataFeaturetypeApi(options));
Modified: trunk/mapbender/http/plugins/mb_metadata_featuretype.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretype.php 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretype.php 2012-04-26 14:09:01 UTC (rev 8329)
@@ -57,30 +57,18 @@
</p>
<p>
<div id="buttons">
- <p>
- <label><?php echo _mb("Add Information about the underlying data");?>:</label>
- <img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Linking the WFS layer with metadata set (coupled resource), which describes the underlying informations of the representation in more detail (eg Actuality / quality). It occurs via a link to an already existing metadta set in a catalog or a simple metadata set will be generated using a Mapbender Layer Addon-Editor.");?>'}" src="../img/questionmark.png" alt="" />
+ <fieldset>
+ <p>
+ <label><?php echo _mb("Add Information about the underlying data");?></label>
+ <img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Linking the WFS Featuretype with a metadata set (coupled resource), which describes the underlying information of the representation more detailed (eg actuality / quality). It can be done by linking to an already existing metadata set (e.g. in a catalogue) or by generating a simple metadata file using mapbender.");?>'}" src="../img/questionmark.png" alt="" />
</p>
<p>
- <input disabled="disabled" class="" type="submit" value="<?php echo _mb("Add new Metadata Record");?>"/>
+ <label><?php echo _mb("Table of coupled Metadata");?>:</label>
+ <table id="metadataTable">
+ </table>
</p>
- <p>
- <input disabled="disabled" class="" type="submit" value="<?php echo _mb("Edit Metadata Linkage");?>"/>
- </p>
- <p>
- <input disabled="disabled" class="" type="submit" value="<?php echo _mb("Delete Metadata Linkage");?>"/>
- </p>
+ </fieldset>
</div>
- <div id="selectbox">
- <select disabled="disabled" class="metadata_selectbox" size="2" multiple>
- <option>not</option>
- <option>yet</option>
- <option>implemented</option>
- </select>
- </div>
- </p>
- </fieldset>
-</div>
<div id="classification">
<fieldset class="">
Modified: trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js 2012-04-26 14:09:01 UTC (rev 8329)
@@ -28,7 +28,7 @@
var createFolder = function (set) {
return {
- attributes: {
+ attr: {
data: $.toJSON(set.attr)
},
data: set.attr.featuretype_name,
@@ -36,18 +36,49 @@
children: []
};
};
-
+
var createLeaf = function (set) {
+ if (set.attr.layer_coupling != 0) {
+ //create html annex to title element
+ annex = set.attr.featuretype_name+" - "+set.attr.featuretype_coupling+" x coupled";
+ } else {
+ annex = set.attr.featuretype_name;
+ }
+ //following things can be done to show icons in the title element - problem: if the span is clicked, the checkbox is set an no layer is selected - TODO should be fixed
+ /*leafTitle = "<span>";
+ if (set.attr.layer_coupling != 0) {
+ //create html annex to title element
+ leafTitle = leafTitle+"<img src=\"../img/osgeo_graphics/geosilk/link.png\" title=\"coupled\">";
+ //annex = set.attr.layer_title;
+ }
+ if (set.attr.inspire_cats != 0) {
+ leafTitle = leafTitle+"<img width=\"15\" height=\"15\" src=\"../img/inspire_tr_36.png\" title=\"INSPIRE classified\">";
+ }
+ leafTitle = leafTitle+set.attr.layer_title+"</span>";*/
return {
- attributes: {
+ attr: {
data: $.toJSON(set.attr)
},
data: {
+ title: annex
+ }
+ };
+ };
+
+
+
+/*
+ var createLeaf = function (set) {
+ return {
+ attr: {
+ data: $.toJSON(set.attr)
+ },
+ data: {
title: set.attr.featuretype_name
}
};
};
-
+*/
var toJsTreeJson = function (nestedSets) {
if (!nestedSets.length && nestedSets.length !== 0) {
new Mapbender.Exception("Nested sets not an array.");
@@ -86,7 +117,19 @@
return children;
};
- var initTree = function (nestedSets) {
+ var checkFeaturetype = function () {
+ $("#" + instanceId).find("li").each(function () {
+ var metadata = $(this).metadata({
+ type: "attr",
+ name: "data"
+ });
+ if (metadata && metadata.featuretype_searchable) {
+ $("#" + instanceId).jstree("check_node", this);
+ }
+ });
+ };
+
+/* var initTree = function (nestedSets) {
var jsTreeData = toJsTreeJson(nestedSets);
jsTreeData[0].state = "open";
@@ -125,8 +168,71 @@
}
});
};
+*/
+ var initTree = function (nestedSets) {
+ var jsTreeData = toJsTreeJson(nestedSets);
+ jsTreeData[0].state = "open";
+
+ $("#" + instanceId).jstree("destroy");
+
+ $.jstree._themes = "../extensions/jsTree.v.1.0rc/themes/";
+
+ $("#" + instanceId).empty().jstree({
+ "json_data" : {
+ "data" : jsTreeData
+ },
+ "checkbox" :{
+ "check_recursively": false
+ },
+ "core" : {"html_titles" : true},
+ "plugins" : [ "themes", "json_data", "ui", "checkbox" ]
+ });
+
+ $("#" + instanceId).bind("before.jstree", function (evt, data) {
+ if (data.func === "change_state" && data.args[0].tagName.toUpperCase() === "A") {
+ $("#" + instanceId).find("a").removeClass("jstree-clicked");
+ $(data.args[0]).parent().children("a").addClass("jstree-clicked");
+ var metadata = $(data.args[0]).parent().metadata({
+ type: "attr",
+ name: "data"
+ });
+ that.events.selected.trigger({
+ "featuretype": metadata
+ });
+
+ evt.stopImmediatePropagation();
+ return false;
+ }
+ });
+ checkFeaturetype();
+ };
+
+
+ this.serialize = function (callback) {
+ var data = {
+ wfs: {
+ "featuretype_searchable": []
+ }
+ };
+
+ var $checked = $("#" + instanceId).jstree("get_checked");
+ $checked.each(function () {
+ var metadata = $(this).metadata({
+ type: "attr",
+ name: "data"
+ });
+ data.wfs.featuretype_searchable.push(metadata.featuretype_id);
+ });
+
+ if ($.isFunction(callback)) {
+ callback(data);
+ }
+ return data;
+ };
+
+
this.events = {
selected: new Mapbender.Event()
};
Modified: trunk/mapbender/http/plugins/mb_metadata_layer.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layer.js 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_layer.js 2012-04-26 14:09:01 UTC (rev 8329)
@@ -145,6 +145,7 @@
}
});
};
+
this.getWmsId = function() {
return wmsId;
}
@@ -181,12 +182,6 @@
wmsId: wmsId
});
formReady = true;
-
- // select layer in tree if set
-
- // init map
-
- // fill layer form if set
});
return;
}
Modified: trunk/mapbender/http/plugins/mb_metadata_layerTree.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerTree.js 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_layerTree.js 2012-04-26 14:09:01 UTC (rev 8329)
@@ -117,8 +117,7 @@
};
var initTree = function (nestedSets) {
- var jsTreeData = toJsTreeJson(nestedSets);
-
+ var jsTreeData = toJsTreeJson(nestedSets);
jsTreeData[0].state = "open";
$("#" + instanceId).jstree("destroy");
Modified: trunk/mapbender/http/plugins/mb_metadata_wfs_server.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_wfs_server.php 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_wfs_server.php 2012-04-26 14:09:01 UTC (rev 8329)
@@ -271,10 +271,16 @@
$sql = <<<SQL
+SELECT featuretype_id, featuretype_name, f_count_featuretype_couplings(featuretype_id) as count_coupling, f_collect_inspire_cat_wfs_featuretype(featuretype_id) AS inspire_cats, featuretype_abstract, featuretype_searchable
+FROM wfs_featuretype WHERE fkey_wfs_id = $wfsId ORDER BY featuretype_id;
+
+SQL;
+/* $sql = <<<SQL
+
SELECT featuretype_id, featuretype_name, featuretype_title, featuretype_abstract
FROM wfs_featuretype WHERE fkey_wfs_id = $wfsId ORDER BY featuretype_id;
-SQL;
+SQL;*/
$res = db_query($sql);
$rows = array();
@@ -293,7 +299,10 @@
"featuretype_id" => intval($row["featuretype_id"]),
"featuretype_name" => $row["featuretype_name"],
"featuretype_title" => $row["featuretype_title"],
- "featuretype_abstract" => $row["featuretype_abstract"]
+ "featuretype_abstract" => $row["featuretype_abstract"],
+ "featuretype_searchable" => intval($row["featuretype_searchable"]),
+ "featuretype_coupling" => intval($row["count_coupling"]),
+ "inspire_cats" => intval($inspireCats)
)
);
}
Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql 2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql 2012-04-26 14:09:01 UTC (rev 8329)
@@ -340,4 +340,49 @@
ALTER TABLE datalink ADD COLUMN datalink_timestamp_last_usage TIMESTAMP WITHOUT TIME ZONE;
+-- Function: f_count_featuretype_couplings(integer)
+-- DROP FUNCTION f_count_featuretype_couplings(integer);
+
+CREATE OR REPLACE FUNCTION f_count_featuretype_couplings(integer)
+ RETURNS integer AS
+$BODY$
+DECLARE
+ featuretype_rel int4;
+BEGIN
+featuretype_rel := count(*) from ows_relation_metadata WHERE fkey_featuretype_id=$1;
+RETURN featuretype_rel;
+
+END;
+$BODY$
+ LANGUAGE plpgsql VOLATILE
+ COST 100;
+ALTER FUNCTION f_count_featuretype_couplings(integer) OWNER TO postgres;
+
+
+-- Function: f_collect_inspire_cat_wfs_featuretype(integer)
+
+-- DROP FUNCTION f_collect_inspire_cat_wfs_featuretype(integer);
+
+CREATE OR REPLACE FUNCTION f_collect_inspire_cat_wfs_featuretype(integer)
+ RETURNS text AS
+$BODY$DECLARE
+ i_wfs_featuretype_id ALIAS FOR $1;
+ inspire_cat_string TEXT;
+ inspire_cat_record RECORD;
+
+BEGIN
+inspire_cat_string := '';
+
+FOR inspire_cat_record IN SELECT wfs_featuretype_inspire_category.fkey_inspire_category_id from wfs_featuretype_inspire_category WHERE wfs_featuretype_inspire_category.fkey_featuretype_id=$1 LOOP
+inspire_cat_string := inspire_cat_string || '{' ||inspire_cat_record.fkey_inspire_category_id || '}';
+END LOOP ;
+
+RETURN inspire_cat_string;
+
+END;
+$BODY$
+ LANGUAGE plpgsql VOLATILE STRICT
+ COST 100;
+ALTER FUNCTION f_collect_inspire_cat_wfs_featuretype(integer) OWNER TO postgres;
+
More information about the Mapbender_commits
mailing list