From f4361beb9a098b3a46dfa16c6342bd51f518db6b Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Wed, 30 Jan 2019 14:37:59 +0100
Subject: [PATCH] =?UTF-8?q?R=C3=A9cup=C3=A9ration=20automatique=20des=20fi?=
 =?UTF-8?q?chiers=20depuis=20Vitis->getFields?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/vitis/vas/rest/ws/vitis/Vitis.class.inc | 39 ++++++++++++++++-----
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/vitis/vas/rest/ws/vitis/Vitis.class.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
index 4b58b7fc..0a9b240a 100644
--- a/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
@@ -82,12 +82,14 @@ class Vitis extends DbClass {
 
     /**
      * Generic function which get fields of the object stored in the database
-     * @param type $sSchema
-     * @param type $sTable
-     * @param type $sIdField
-     *
+     * @param $sSchema
+     * @param $sTable
+     * @param $sIdField
+     * @param $sVitisObjectName Name of the vitis object, if provide and the object contains files stored in ws_data/vitis/$sVitisObjectName the values will be url formed
+     * @param $sVitisModuleName for upload files : module name
+     * @param $sVitisPathComplement for upload files : complement folder on put files (ws_data/vitis/.../documents/...)
      */
-    function getFields($sSchema, $sTable, $sIdField) {
+    function getFields($sSchema, $sTable, $sIdField, $sVitisObjectName = "", $sVitisModuleName = "vitis", $sVitisPathComplement = "documents") {
 
         $this->aSqlParams = array();
 
@@ -139,12 +141,32 @@ class Vitis extends DbClass {
                 $aData = array();
                 while ($aObject = $this->oConnection->oBd->ligneSuivante($oResult)) {
                     foreach ($aObject as $sParamKey => $sParamValue) {
-
                         $aData[$sParamKey] = $sParamValue;
                     }
                 }
+
+                // Vérifie si il y a des fichiers à renvoyer
+                if ($sVitisObjectName != "") {
+
+                    // check dans ws_data
+                    $sDataDir = $this->aProperties['ws_data_dir'] . '/'.$sVitisModuleName.'/' . $sVitisObjectName;
+                    if(!empty($sVitisPathComplement)){
+                        $sDataDir .= '/' . $sVitisPathComplement;
+                    }
+                    $sDataDir .=  '/' . $aData[$sIdField];
+
+                    if ($this->oFilesManager->oFileInterface->is_dir($sDataDir)) {
+                        // Remplace le nom du fichier par son url
+                        foreach ($aData as $key => $value) {
+                            if ($this->oFilesManager->oFileInterface->is_dir($sDataDir . "/" . $key)) {
+                                $aData[$key] = $this->oFilesManager->oFileInterface->getProxyPassUrl($sDataDir . "/" . $key . "/" . $value);
+                            }
+                        }
+                    }
+                }
             }
         }
+
         return $aData;
     }
 
@@ -206,7 +228,6 @@ class Vitis extends DbClass {
         return $aColumn;
     }
 
-    // fonction get générique à tous les objets
     /**
      * Generic function which get data of the objects in tables
      * @param $sSchema schema of the table
@@ -214,6 +235,8 @@ class Vitis extends DbClass {
      * @param $sIdField name of the id field
      * @param $bOnlyReturnStatus
      * @param $sVitisObjectName Name of the vitis object, if provide and the object contains files stored in ws_data/vitis/$sVitisObjectName the values will be url formed
+     * @param $sVitisModuleName for upload files : module name
+     * @param $sVitisPathComplement for upload files : complement folder on put files (ws_data/vitis/.../documents/...)
      * @return the array of objects
      */
     function genericGet($sSchema, $sTable, $sIdField, $bOnlyReturnStatus = false, $sVitisObjectName = "", $sVitisModuleName = "vitis", $sVitisPathComplement = "documents") {
@@ -593,7 +616,7 @@ class Vitis extends DbClass {
      * @param $sTable table to update
      * @param $sIdField id field name
      * @param $aUploadFiles : uploaded files array (more info on function genericPutFiles)
-     * @param $sVitisObjectName for upload files : object name
+     * @param $sVitisObjectName Name of the vitis object, if provide and the object contains files stored in ws_data/vitis/$sVitisObjectName the values will be url formed
      * @param $sVitisModuleName for upload files : module name
      * @param $sVitisPathComplement for upload files : complement folder on put files (ws_data/vitis/.../documents/...)
      * @return array containing the status and the message
-- 
GitLab