Просмотр исходного кода

#4148 Build-in API support (uploaders)

roman.lesnikov@gmail.com 3 лет назад
Родитель
Сommit
fb02eb73f7

+ 1 - 1
inc/classes/BxDolUploader.php

@@ -416,7 +416,7 @@ abstract class BxDolUploader extends BxDolFactory
         if ('json' == $sFormat) {
             return json_encode($a);
         } else { // html format is not suported for this data type
-            return false;
+            return $a;
         }
     }
     

+ 1 - 0
scripts/service_functions.php

@@ -55,6 +55,7 @@ class BxDolServiceFunctionsCmd
             'BxBaseTemplateServices' => 'System',
             'BxBaseAclServices' => 'System',
             'BxBaseCmtsServices' => 'System',
+            'BxBaseUploaderServices' => 'System',
             'BxBaseImageServices' => 'System',
             'BxBaseLanguagesServices' => 'System',
             'BxBaseLiveUpdatesServices' => 'System',

+ 12 - 0
template/scripts/BxBaseFormView.php

@@ -355,6 +355,18 @@ class BxBaseFormView extends BxDolForm
             $this->genForm();
         
         // TODO: process inputs to translate titles, alerts, etc
+        
+        foreach ($this->aInputs as $aInput) {
+            if (isset($aInput['type']) && 'files' == $aInput['type']){
+                $oStorage = BxDolStorage::getObjectInstance($aInput['storage_object']);
+                $aInput['ext_allow'] = $oStorage->getObjectData()['ext_allow'];
+                $aInput['ext_deny'] = $oStorage->getObjectData()['ext_deny'];
+                $aInput['ghost_template'] = '';
+                $aInput['value'] = '';
+                $aInput['values'] = '';
+                $aInput['values_src'] = '';
+            }
+        }
     
         return ['inputs' => $this->aInputs, 'attrs' => $this->aFormAttrs, 'params' => $this->aParams];
     }

+ 3 - 1
template/scripts/BxBaseServices.php

@@ -75,7 +75,9 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
             'GetPerformedBy' => 'BxBaseVoteServices',
 
             'Perform' => 'BxBaseServiceConnections',
-            'GetDataApi' => 'BxBaseCmtsServices'
+            'GetDataApi' => 'BxBaseCmtsServices',
+            
+            'GetDataApi' => 'BxBaseUploaderServices',
         );
     }
 

+ 4 - 2
template/scripts/BxBaseUploaderHTML5.php

@@ -158,8 +158,10 @@ class BxBaseUploaderHTML5 extends BxDolUploader
             $this->appendUploadErrorMessage(_t('_sys_uploader_err_msg', isset($_FILES['file']['name']) ? $_FILES['file']['name'] : bx_get('file'), $oStorage->getErrorString()));
             $aResponse = array ('error' => $this->getUploadErrorMessages());
         }
-
-        echo htmlspecialchars(json_encode($aResponse), ENT_NOQUOTES);
+        if (bx_is_api())
+            return $aResponse;
+        else
+            echo htmlspecialchars(json_encode($aResponse), ENT_NOQUOTES);
     }
 }