|
@@ -1338,6 +1338,9 @@ if($DBG){echo 'L.' . __LINE__ . ' $validateConvertedTransactionXsdString:';print
|
|
|
if (empty($requestOgcFilter)) return '';
|
|
if (empty($requestOgcFilter)) return '';
|
|
|
$requestXml = new DOMDocument();
|
|
$requestXml = new DOMDocument();
|
|
|
$requestXml->loadXml($requestOgcFilter);
|
|
$requestXml->loadXml($requestOgcFilter);
|
|
|
|
|
+ $rootNode = $requestXml->documentElement;
|
|
|
|
|
+ // if ($rootNode->getAttribute('resolve'))
|
|
|
|
|
+ DBG::log([$rootNode->getAttribute('resolve'), $rootNode->getAttribute('resolveDepth')], 'array', "TODO: use wfs:GetFeature @resolve, @resolveDepth");
|
|
|
$nodesQuery = [];
|
|
$nodesQuery = [];
|
|
|
foreach ($requestXml->getElementsByTagNameNS('http://www.opengis.net/wfs', 'Query') as $element) {
|
|
foreach ($requestXml->getElementsByTagNameNS('http://www.opengis.net/wfs', 'Query') as $element) {
|
|
|
DBG::log($element->nodeName, 'array', "main loop - wfs:Query");
|
|
DBG::log($element->nodeName, 'array', "main loop - wfs:Query");
|
|
@@ -1368,7 +1371,16 @@ if($DBG){echo 'L.' . __LINE__ . ' $validateConvertedTransactionXsdString:';print
|
|
|
$tagsWfsPropertyName = [];
|
|
$tagsWfsPropertyName = [];
|
|
|
foreach ($requestXml->getElementsByTagNameNS('http://www.opengis.net/wfs', 'PropertyName') as $element) {
|
|
foreach ($requestXml->getElementsByTagNameNS('http://www.opengis.net/wfs', 'PropertyName') as $element) {
|
|
|
// DBG::log($element->nodeValue, 'array', "loop wfs:PropertyName (1 * wfs:Query)");
|
|
// DBG::log($element->nodeValue, 'array', "loop wfs:PropertyName (1 * wfs:Query)");
|
|
|
- $tagsWfsPropertyName[] = $element->nodeValue;
|
|
|
|
|
|
|
+ if ($element->getAttribute('resolve')) DBG::log([$element->getAttribute('resolve'), $element->getAttribute('resolveDepth'), $element->getAttribute('resolvePath')], 'array', "TODO: use wfs:PropertyName @resolve, @resolveDepth, @resolvePath");
|
|
|
|
|
+ $value = $element->nodeValue;
|
|
|
|
|
+ if (in_array($element->getAttribute('resolve'), ['all', 'local', 'remote'])) {
|
|
|
|
|
+ $depth = $element->getAttribute('resolveDepth');
|
|
|
|
|
+ if ('*' !== substr($value, -1)) { // TODO: propertyName is not regex
|
|
|
|
|
+ if ('*' === $depth) $value .= "/**"; // TODO: resolveDepth="*" - resolve all
|
|
|
|
|
+ else if ((int)$depth > 0) $value .= str_repeat("/*", $depth);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $tagsWfsPropertyName[] = $value;
|
|
|
}
|
|
}
|
|
|
DBG::log($tagsWfsPropertyName, 'array', "\$tagsWfsPropertyName (1 * wfs:Query)");
|
|
DBG::log($tagsWfsPropertyName, 'array', "\$tagsWfsPropertyName (1 * wfs:Query)");
|
|
|
return array_filter([
|
|
return array_filter([
|