Kaynağa Gözat

added xsd:base64Binary in wfs for CRM_IMAGE

Piotr Labudda 9 yıl önce
ebeveyn
işleme
dccb7a6d4f
1 değiştirilmiş dosya ile 11 ekleme ve 0 silme
  1. 11 0
      SE/se-lib/Api/WfsDataServer.php

+ 11 - 0
SE/se-lib/Api/WfsDataServer.php

@@ -269,6 +269,17 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 							} else {
 								throw new Exception("Error Processing Request - too many refs for ".$acl->getName().".{$itemKey}/{$fldName}");
 							}
+						} else if ('xsd:base64Binary' === $acl->getXsdFieldType($fldName)) {
+							if (empty($item[$fldName]) && '0' !== $item[$fldName]) continue;
+							$xmlWriter->startElement("{$wfsNs}:{$fldName}");
+								if (!$simple && !$acl->canReadObjectField($fldName, (object)$item)) {
+									$xmlWriter->writeAttribute("{$rootWfsNs}:allow_read", "false");
+								}
+								if (!$simple && !$acl->canWriteObjectField($fldName, (object)$item)) {
+									$xmlWriter->writeAttribute("{$rootWfsNs}:allow_write", "true");
+								}
+								$xmlWriter->text(base64_encode($item[$fldName]));
+							$xmlWriter->endElement();// {$wfsNs}:{$fldName}
 						} else {
 							$value = str_replace('&', '&', $item[$fldName]);
 							if (empty($value) && '0' !== $value) {