From e331e5aac9b43886885497e52391d60523d00966 Mon Sep 17 00:00:00 2001 From: Anthony Borghi <anthony.borghi@veremes.com> Date: Mon, 10 Dec 2018 14:06:00 +0100 Subject: [PATCH] Squashed 'src/module_gtf/' changes from 3378f9e3..aff16c61 aff16c61 Merge branch 'next_version' into next_app_gtf 397ded05 Merge branch 'master' into next_version 589a99a6 Classe Files_manager dans les web services (GTF) d083d981 Correction d'un bug dans l'url des widgets de GTF 320f4d1e pull subtree bed3fcfc Squashed 'src/vitis/' changes from d0507413..562cedd5 4cccc0e3 pull subtree 143bb262 Squashed 'src/vitis/' changes from 562cedd5..d0507413 9c4147d8 Squashed 'src/vitis/' changes from 562cedd5..d0507413 5257f83f Squashed 'src/vitis/' changes from 457060db..562cedd5 git-subtree-dir: src/module_gtf git-subtree-split: aff16c6171516ac2e848f17111555e91f6f7abd9 --- gtf.engine/gtf.engines/engine.php | 22 ++++ module/javascript/script_module.js | 68 +++++------ web_service/ws/Workspace.class.inc | 33 +++--- web_service/ws/Workspaces.class.inc | 169 ++++++++++++++++------------ 4 files changed, 171 insertions(+), 121 deletions(-) diff --git a/gtf.engine/gtf.engines/engine.php b/gtf.engine/gtf.engines/engine.php index 4d7af46b..6c2473b4 100755 --- a/gtf.engine/gtf.engines/engine.php +++ b/gtf.engine/gtf.engines/engine.php @@ -445,6 +445,17 @@ if ($ErrorLicense == "0") { } } } + if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser)) { + mkdir($properties["transit_dir"] . "/failed/" . $sUser); + } + if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"])) { + mkdir($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"]); + } + rename($sSourceDirectory, $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]); + writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]); + } else { + writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]); + $iStatut = $sEnErreur; } $sMessage = $oTraitement->sMessageErreur; $iStatut = $sEnErreur; @@ -499,6 +510,17 @@ if ($ErrorLicense == "0") { } } } + if (!file_exists($properties["transit_dir"] . "/success/" . $sUser)) { + mkdir($properties["transit_dir"] . "/success/" . $sUser); + } + if (!file_exists($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"])) { + mkdir($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"]); + } + rename($sSourceDirectory, $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]); + writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]); + } else { + writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]); + $iStatut = $sEnErreur; } $sMessage = ""; $iStatut = 3; diff --git a/module/javascript/script_module.js b/module/javascript/script_module.js index 72413cbd..ef05d16c 100644 --- a/module/javascript/script_module.js +++ b/module/javascript/script_module.js @@ -778,7 +778,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // Valeurs des champs cachés du form. de la demande. var oWkParams = {}; //var aSerializedSubForm = angular.element("#double_form_right_section_" + envSrvc["oSelectedObject"]["name"] + " form").serializeArray(); - //mise en forme pour fme + //mise en forme pour fme /***********************************************************************/ var encoderFME = function (str) { @@ -813,14 +813,14 @@ vitisApp.on('appMainDrtvLoaded', function () { //GTF_QUOTE et GTF BACKSLASH /* var quote = "<GTF_QUOTE>"; var backslash = "<GTF_BACKSLASH>"; - + var clipper = result.substr(iresult, quote.length); if (clipper === quote) { istr += quote.length; iresult += quote.length; find = true; } - + clipper = result.substr(iresult, backslash.length); console.error(result,clipper, iresult); if (clipper === backslash) { @@ -1093,7 +1093,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // Sauve les valeurs du formulaire du projet FME + id de l'utilisateur connecté. envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["wk_params"] = sWkParams; //envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["user_id"] = sessionStorage["user_id"]; - // + // envSrvc["sFormDefinitionName"] = envSrvc["sFormDefinitionName"].replace(/_subform/, "_form"); // Envoi du formulaire. return scope["sendSimpleForm"](true); @@ -1180,7 +1180,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } // 1er affichage ou tri de la liste : maj de la mise en forme. var clearObserver = attrs.$observe("appMessageStatusIconColumn", function (value) { - // Si le champ est vide : supprime l'icône. + // Si le champ est vide : supprime l'icône. if (scope["row"]["entity"][scope["col"]["field"]] == null || String(scope["row"]["entity"][scope["col"]["field"]]) == "") element[0].className = ""; else { @@ -1219,7 +1219,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }; vitisApp["compileProvider"].directive("appMessageStatusIconColumn", vitisApp.appMessageStatusIconColumnDrtv); - + /** * appMessageBodyColumn directive. * Mise en forme de la colonne "body" dans la liste de l'onglet "my_work_3" (messages de gtf). @@ -1230,7 +1230,7 @@ vitisApp.on('appMainDrtvLoaded', function () { link: function (scope, element, attrs) { // 1er affichage ou tri de la liste : maj de la mise en forme. var clearObserver = attrs.$observe("appMessageBodyColumn", function (value) { - // Si le champ est vide : supprime l'icône. + // Si le champ est vide : supprime l'icône. if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "") element[0].className = ""; else { @@ -1381,7 +1381,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // . $log.info("checkCronExpression"); var scope = this; - // Sauve le nouveau scope crée dans la définition de l'onglet. + // Sauve le nouveau scope crée dans la définition de l'onglet. modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope); scope["oCheckCronExpressionResult"] = {}; // Paramètres du service web (vitis, gtf...) @@ -1546,7 +1546,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // $log.info("ModifyEngine"); var scope = this; - // Sauve le nouveau scope crée dans la définition de l'onglet. + // Sauve le nouveau scope crée dans la définition de l'onglet. modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope); // Des demandes sont sélectionnées ? var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"](); @@ -1894,7 +1894,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // Sauve le nouvel onglet. var oMode = modesSrvc["getMode"](envSrvc["oSelectedMode"]["mode_id"]); oMode["objects"].push(angular.copy(envSrvc["oSelectedObject"])); - // Sauve le nouveau scope crée dans la définition de l'onglet. + // Sauve le nouveau scope crée dans la définition de l'onglet. modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope); // Compilation du template "doubleFormTpl". //var sTemplateUrl = 'templates/doubleFormTpl.html'; @@ -2046,7 +2046,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // $log.info("showGtfLicenseInfos"); var scope = this.$new(); - // Sauve le nouveau scope crée dans la définition de l'onglet. + // Sauve le nouveau scope crée dans la définition de l'onglet. modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope); // Attends la compilation du formulaire de la section "licence". var clearListener = scope.$root.$on('endFormNgRepeat', function (event) { @@ -2101,7 +2101,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $log.info("showGtfLincenseFileRequestForm"); // Crée un nouveau scope. var scope = this.$new(); - // Sauve le nouveau scope crée dans la définition de l'onglet. + // Sauve le nouveau scope crée dans la définition de l'onglet. modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope); // var sFormId = "form_gtf_license_file_request_" + envSrvc["oSelectedObject"]["name"]; @@ -2366,7 +2366,7 @@ vitisApp.on('appMainDrtvLoaded', function () { "sUrl": "modules/gtf/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json" }; }; - + /** * loadLicenseConfig function. * Chargement de la section "Licence" dans l'onglet "Configuration". @@ -2527,7 +2527,7 @@ vitisApp.on('appMainDrtvLoaded', function () { var oFormValues = envSrvc['oFormValues'][envSrvc['sFormDefinitionName']]; // Paramètres pour le template du widget. scope['oWidgetParams'] = { - 'client_url': propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['application_name'], + 'client_url': propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['application'], 'button_label': vitisApp['htmlentities'](oFormValues['buttonText']) }; // Fichiers js à charger. @@ -3182,7 +3182,7 @@ vitisApp.on('appMainDrtvLoaded', function () { "sUrl": "modules/gtf/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json" }; }; - + /** * displayFormFields function. * Affiche la liste des champs de formulaire passée en paramètre et cache les autres. @@ -3221,11 +3221,11 @@ vitisApp.on('appMainDrtvLoaded', function () { var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope(); formScope.$broadcast('$$rebind::refresh'); formScope.$applyAsync(); - // + // externFunctionSrvc["resizeWin"](); } }; - + /** * initGtfFmeEngineForm function. * Traitements avant l'affichage du formulaire de l'onglet "Moteur FME". @@ -3262,7 +3262,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $rootScope["refreshFmeServerInstanceStatus"](); }); }; - + /** * setGtfFmeEngineForm function. * Affichage des champs du formulaire de l'onglet "Moteur FME" suivant le type passé. @@ -3322,7 +3322,7 @@ vitisApp.on('appMainDrtvLoaded', function () { }); } } - + /** * generateGtfInstanceId function. * Génération de l'identifiant de l'instance de GTF. @@ -3348,7 +3348,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) { $.notify(sTranslation, "success"); }); - } + } else { var oOptions = {"className": "modal-danger"}; // Message d'erreur ? @@ -3359,7 +3359,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * afterGtfEngineForm function. * Traitement apès l'envoi du formulaire de l'onglet "Moteur GTF". @@ -3377,7 +3377,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $rootScope["editSectionForm"]() }); }; - + /** * deleteGtfEngine function. * Suppression d'un ou plusieurs moteurs GTF. @@ -3399,7 +3399,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // Supprime les enregistrements. $rootScope["DeleteSelection"](); }; - + /** * downloadGtfWorkspaceFile function. * Téléchargement d'un fichier du répertoire "workspace" d'un projet. @@ -3441,7 +3441,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * StartFmeServerInstance function. * Démarre une instance Fme Server (Fme Cloud). @@ -3482,7 +3482,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * PauseFmeServerInstance function. * Met en pause une instance Fme Server (Fme Cloud). @@ -3525,7 +3525,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * getFmeServerInstance function. * Retourne une instance Fme Server (Fme Cloud). @@ -3615,7 +3615,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * setFmeServerInstanceButtonsStatus function. * Active ou désactive les boutons de l'instance Fme Server suivant son statut. @@ -3646,7 +3646,7 @@ vitisApp.on('appMainDrtvLoaded', function () { formScope.$broadcast('$$rebind::refresh'); formScope.$applyAsync(); }; - + /** * removeFmeServerInstanceInfo function. * Supprime les informations d'une instance Fme Server sur Fme Cloud. @@ -3661,7 +3661,7 @@ vitisApp.on('appMainDrtvLoaded', function () { if (oContainerElement !== null) oContainerElement.parentElement.removeChild(oContainerElement); }; - + /** * refreshFmeServerInstanceStatus function. * Charge et met à jour le statut d'une instance Fme Server. @@ -3693,7 +3693,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * setFmeServerInstanceStatus function. * Met à jour le statut d'une instance Fme Server dans le formulaire "Moteur FME". @@ -3769,7 +3769,7 @@ vitisApp.on('appMainDrtvLoaded', function () { oFormValues["fme_server_instance_status"] = sTranslation; }); }; - + /** * testAmazonS3BucketConnection function. * Teste la connexion vers un bucket Amazon S3. @@ -3827,7 +3827,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * deleteGtfOrders function. * Suppression d'une ou plusieurs demandes. @@ -3871,7 +3871,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * stopOrderProcess function. * Arrête une demande en cours. @@ -3926,4 +3926,4 @@ vitisApp.on('appMainDrtvLoaded', function () { else $rootScope["modalWindow"]("dialog", "ERROR_STOP_ORDER_PROCESS_NO_SELECTION_SUPERVISION_ORDER", oOptions); }; -}); \ No newline at end of file +}); diff --git a/web_service/ws/Workspace.class.inc b/web_service/ws/Workspace.class.inc index 22916328..183128f8 100755 --- a/web_service/ws/Workspace.class.inc +++ b/web_service/ws/Workspace.class.inc @@ -2,6 +2,7 @@ require_once 'Gtf.class.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; +require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/files/Files_manager.class.inc'; /** * \file Workspace.class.inc @@ -12,7 +13,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection * \brief This file contains the Workspace php class * * This class defines operation for one Workspace - * + * */ class Workspace extends GTF { @@ -32,7 +33,7 @@ class Workspace extends GTF { } /** - * @SWG\Get(path="/workspaces/{workspace_id}", + * @SWG\Get(path="/workspaces/{workspace_id}", * tags={"Workspaces"}, * summary="Get Workspace", * description="Request to get Workspace by id", @@ -169,6 +170,7 @@ class Workspace extends GTF { * get informations about workspace */ function GET() { + $oFilesManager = new Files_manager($this->aProperties); if (!empty($this->aValues["form"])) { require $this->sRessourcesFile; $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_workspace", "workspace_id"); @@ -186,20 +188,19 @@ class Workspace extends GTF { $this->oError = new VitisError(1, "Error parameter is not a known mode"); } // Contenu du fichier de formulaire. - $sFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'form', $sFile); + $sDirPath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"]; + $sFileContent = $oFilesManager->oFileInterface->file_get_contents($sDirPath . '/form/' . $sFile); if ($sFileContent !== false) { $aJson = json_decode($sFileContent, true); $this->aFields["json_form"] = array($aJson); $sJs = ""; $sCss = ""; // Url du fichier js du formulaire. - $sFileUrl = getFileUrlInWsDataDir('gtf', 'workspace', $this->aValues['my_vitis_id'], 'form/ressources', 'Subform.js'); - if ($sFileUrl !== false) - $sJs = $sFileUrl; + $sFileUrl = $oFilesManager->oFileInterface->getProxyPassUrl($sDirPath . '/form/ressources/Subform.js'); + $sJs = $sFileUrl; // Url du fichier css du formulaire. - $sFileUrl = getFileUrlInWsDataDir('gtf', 'workspace', $this->aValues['my_vitis_id'], 'form/ressources', 'Subform.css'); - if ($sFileUrl !== false) - $sCss = $sFileUrl; + $sFileUrl = $oFilesManager->oFileInterface->getProxyPassUrl($sDirPath . '/form/ressources/Subform.css'); + $sCss = $sFileUrl; // array_push($this->aFields["json_form"], $sJs); array_push($this->aFields["json_form"], $sCss); @@ -212,13 +213,15 @@ class Workspace extends GTF { $this->getGroups(); // Url vers le fichier fmw du projet. if (!empty($this->aFields['fmw_file'])) { - $sFmwFileUrl = getFileUrlInWsDataDir('gtf', 'workspace', $this->aValues['my_vitis_id'], 'fme', $this->aFields['fmw_file']); - if ($sFmwFileUrl !== false) + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues['my_vitis_id'] . '/fme/' . $this->aFields['fmw_file']; + $sFmwFileUrl = $oFilesManager->oFileInterface->getProxyPassUrl($sFilePath); + if (!empty($sFmwFileUrl)) $this->aFields['fmw_file_url'] = $sFmwFileUrl; } } // Formatage de la colonne "form_type". - if (!fileExistsInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json')) + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/form/Subform.json'; + if (!$oFilesManager->oFileInterface->file_exists($sFilePath)) $this->aFields['form_type'] = ''; else { if ($this->aFields['form_type'] != "custom") @@ -258,10 +261,12 @@ class Workspace extends GTF { $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage()); } else { // Suppression du répertoire du projet FME. - deleteDirectoryInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], '', ''); + $oFilesManager = new Files_manager($this->aProperties); + $sDirPath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"]; + $oFilesManager->oFileInterface->clearDir($sDirPath); } } } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Workspaces.class.inc b/web_service/ws/Workspaces.class.inc index 0e9a34d2..63d7fd78 100755 --- a/web_service/ws/Workspaces.class.inc +++ b/web_service/ws/Workspaces.class.inc @@ -9,7 +9,7 @@ * \brief This file contains the Workspaces php class * * This class defines Rest Api to Gtf workspaces - * + * */ require_once 'Gtf.class.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; @@ -17,6 +17,7 @@ require_once 'Workspace.class.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/gtf_lib/GtfFmwParser.class.inc'; +require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/files/Files_manager.class.inc'; class Workspaces extends GTF { /** @@ -168,8 +169,10 @@ class Workspaces extends GTF { $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_workspace", "workspace_id"); // Formatage de la colonne "form_type". if ($aReturn['sStatus'] == 1) { + $oFilesManager = new Files_manager($this->aProperties); foreach ($this->aObjects as &$oWorkspace) { - if (!fileExistsInWsDataDir('gtf', 'workspace', $oWorkspace->aFields['workspace_id'], 'form', 'Subform.json')) + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $oWorkspace->aFields['workspace_id'] . '/form/Subform.json'; + if (!$oFilesManager->oFileInterface->file_exists($sFilePath)) $oWorkspace->aFields['form_type'] = ''; else { if ($oWorkspace->aFields['form_type'] != "custom") @@ -308,8 +311,9 @@ class Workspaces extends GTF { * @return id of the workspace created */ function POST() { + $oFilesManager = new Files_manager($this->aProperties); require $this->sRessourcesFile; - // Importation de projets. + // Création du fichier html du widget. if (!empty($this->aPath[3]) && $this->aPath[3] === "GenerateWidgetFile") { unset($this->aPath[3]); $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection); @@ -320,10 +324,15 @@ class Workspaces extends GTF { $sWidgetHtml = '<!DOCTYPE html>' . PHP_EOL . '<html>' . PHP_EOL . '<head>' . PHP_EOL . '<title>Widget</title>' . PHP_EOL . '<meta name="viewport" content="width=device-width, initial-scale=1.0">' . PHP_EOL . '<meta http-equiv="X-UA-Compatible" content="IE=edge">' . PHP_EOL . '</head>' . PHP_EOL . '<body>'; $sWidgetHtml .= $this->aValues['widgetFileContent']; $sWidgetHtml .= '' . PHP_EOL . '</body>' . PHP_EOL . '</html>'; + // Création du répertoire des widgets si inexistant. + $sDirPath = $this->aProperties['ws_data_dir'] . '/gtf/widget'; + if (!$oFilesManager->oFileInterface->is_dir($sDirPath)) + $oFilesManager->oFileInterface->mkdir($sDirPath, 0777, true); // Création du fichier du widget. - if (putFileContentInWsDataDir('gtf', 'widget', '', '', $sWorkspace_key . ".html", $sWidgetHtml) !== false) { + $sFilePath = $sDirPath . '/' . $sWorkspace_key . ".html"; + if ($oFilesManager->oFileInterface->file_put_contents($sFilePath, $sWidgetHtml) !== false) { // Url du fichier du widget. - $sFileUrl = getFileUrlInWsDataDir('gtf', 'widget', '', '', $sWorkspace_key . ".html"); + $sFileUrl = $oFilesManager->oFileInterface->getProxyPassUrl($sFilePath); if ($sFileUrl !== false) $this->aFields['widget_file_url'] = $sFileUrl; $aXmlRacineAttribute['status'] = 1; @@ -336,6 +345,7 @@ class Workspaces extends GTF { } return $sMessage; } + // Importation de projets. if (!empty($this->aValues['mode']) && $this->aValues['mode'] == "import") { for ($i = 0; $i < count($_FILES['fmw_file']['name']); $i++) { $aParams = array(); @@ -384,7 +394,8 @@ class Workspaces extends GTF { $sFilePathName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"] . "/fme/" . $_FILES['fmw_file']['name'][$i]; $sDirName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"]; // Si le répertoire existe déja : suppression. - deleteDirectoryInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], '', ''); + if ($oFilesManager->oFileInterface->is_dir($sDirName)) + $oFilesManager->oFileInterface->clearDir($sDirName); // Upload du fichier fmw. $this->aValues['fme'] = $this->aValues['fmw_file']; $_FILES['fme'] = array( @@ -402,21 +413,22 @@ class Workspaces extends GTF { $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } else { // Copie du .fmw original en .bak. - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'][$i], $_FILES['fmw_file']['name'][$i] . '.bak'); + $oFilesManager->oFileInterface->copy($sDirName . '/fme/' . $_FILES['fmw_file']['name'][$i], $sDirName . '/fme/' . $_FILES['fmw_file']['name'][$i] . '.bak'); // Création des fichiers vides de ressources js et css. - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.js', ''); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.css', ''); + $oFilesManager->oFileInterface->mkdir($sDirName . '/form/ressources', 0777, true); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.js', ''); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.css', ''); // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'][$i]); + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sDirName . '/fme/' . $_FILES['fmw_file']['name'][$i]); // Sauve le .fmw sans les visualizers. $oFmwParser = new GtfFmwParser($_FILES['fmw_file']['name'][$i], $this->aProperties, $sFmwFileContent); $oFmwParser->save($oFmwParser->sFmwFileName); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'][$i], file_get_contents($oFmwParser->sFmwFileName)); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/fme/' . $_FILES['fmw_file']['name'][$i], file_get_contents($oFmwParser->sFmwFileName)); // Création des formulaires json. $aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]); - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', json_encode($aJson)) !== false) { - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'WSubform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'DSubform.json'); + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/Subform.json', json_encode($aJson)) !== false) { + $oFilesManager->oFileInterface->copy($sDirName . '/form/Subform.json', $sDirName . '/form/WSubform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/Subform.json', $sDirName . '/form/DSubform.json'); } $oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]); // @@ -458,7 +470,7 @@ class Workspaces extends GTF { $oError = new VitisError(1, "FORM_WORKSPACE_NAME_EXISTS_PUBLICATION_WORKSPACE"); $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } + } else { $this->aValues['creation_date'] = gmdate('Y-m-d H:i:s'); // Création de la clé du projet. @@ -506,12 +518,12 @@ class Workspaces extends GTF { } $sDirName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"]; // Si le répertoire existe déja : suppression. - deleteDirectoryInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], '', ''); + if ($oFilesManager->oFileInterface->is_dir($sDirName)) + $oFilesManager->oFileInterface->clearDir($sDirName); // Upload du fichier fmw. $this->aValues['fme'] = $this->aValues['fmw_file']; $_FILES['fme'] = $_FILES['fmw_file']; $sErrorMessage = uploadInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], "fme", $this->aValues, -1, "fmw"); - // Copie du .fmw original en .bak. if (!empty($sErrorMessage)) { writeToErrorLog($sErrorMessage); $oError = new VitisError(8, $sErrorMessage); @@ -519,10 +531,12 @@ class Workspaces extends GTF { $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } else { - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'], $_FILES['fmw_file']['name'] . '.bak'); + // Copie du .fmw original en .bak. + $oFilesManager->oFileInterface->copy($sDirName . '/fme/' . $_FILES['fmw_file']['name'], $sDirName . '/fme/' . $_FILES['fmw_file']['name'] . '.bak'); // Création des fichiers vides de ressources js et css. - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.js', ''); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.css', ''); + $oFilesManager->oFileInterface->mkdir($sDirName . '/form/ressources', 0777, true); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.js', ''); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.css', ''); // Upload du fichier de ressource. if ($this->aValues["comp_file"] != "") { // Si le fichier est une archive .zip -> décompression et copie des fichiers. @@ -533,16 +547,16 @@ class Workspaces extends GTF { $sErrorMessage = uploadInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], "fme", $this->aValues); } // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name']); + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sDirName . '/fme/' . $_FILES['fmw_file']['name']); // Sauve le .fmw sans les visualizers. $oFmwParser = new GtfFmwParser($_FILES['fmw_file']['name'], $this->aProperties, $sFmwFileContent); $oFmwParser->save($oFmwParser->sFmwFileName); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'], file_get_contents($oFmwParser->sFmwFileName)); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/fme/' . $_FILES['fmw_file']['name'], file_get_contents($oFmwParser->sFmwFileName)); // Création des formulaires json. $aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]); - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', json_encode($aJson)) !== false) { - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'WSubform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'DSubform.json'); + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/Subform.json', json_encode($aJson)) !== false) { + $oFilesManager->oFileInterface->copy($sDirName . '/form/Subform.json', $sDirName . '/form/WSubform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/Subform.json', $sDirName . '/form/DSubform.json'); } $oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]); /* * ************************************************************** */ @@ -695,6 +709,7 @@ class Workspaces extends GTF { * @return id of the workspace if ok error object if ko */ function PUT() { + $oFilesManager = new Files_manager($this->aProperties); if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") { $aReturn = $this->reintegrateMetadata(); $aXmlRacineAttribute['status'] = $aReturn['status']; @@ -706,14 +721,9 @@ class Workspaces extends GTF { } } else { $sDirName = $this->aProperties['workspace_dir'] . "/" . (string) $this->aValues["my_vitis_id"]; - - - $sDirName = $this->aProperties['workspace_dir'] . "/" . (string) $this->aValues["my_vitis_id"]; - $error_message = ""; - // Si le dossier {id} n'existe pas (Important pour gérer les erreurs) - if (isDirInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"]) !== true) { + if (!$oFilesManager->oFileInterface->is_dir($sDirName)) { $error_message .= $sDirName . " does not exist"; writeToErrorLog("WARNING: " . $error_message); @@ -724,7 +734,7 @@ class Workspaces extends GTF { return $sMessage; } // Si le dossier {id}/fme n'existe pas (Important pour gérer les erreurs) - if (isDirInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme') !== true) { + if (!$oFilesManager->oFileInterface->is_dir($sDirName . '/fme')) { $error_message .= $sDirName . "/fme does not exist"; writeToErrorLog("WARNING: " . $error_message); @@ -736,10 +746,11 @@ class Workspaces extends GTF { } // Si le dossier {id}/form n'existe pas il est crée - if (isDirInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form') !== true) { + if (!$oFilesManager->oFileInterface->is_dir($sDirName . '/form')) { writeToErrorLog("WARNING: " . $sDirName . "/form dit not exist"); - if ($this->aProperties['fileS3Uploader'] === false) - @mkdir($sDirName . "/form"); + $oFilesManager->oFileInterface->mkdir($sDirName . '/form', 0777, true); + //if ($this->aProperties['fileS3Uploader'] === false) + //@mkdir($sDirName . "/form"); } if (!empty($this->aValues["cmd"])) { @@ -750,13 +761,13 @@ class Workspaces extends GTF { // Remplace le formulaire publié par celui par défaut case "Default_Published": // Si le fichier par défaut n'existe pas, il est généré - if (!fileExistsInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json')) { + if (!$oFilesManager->oFileInterface->file_exists($sDirName . '/form/DSubform.json')) { $this->aValues["cmd"] = "Default_Reset"; $this->PUT(); } // Remplace 'Subform.json' par le formulaire par défaut 'DSubform.json'. - deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'Subform.json'); + $oFilesManager->oFileInterface->unlink($sDirName . '/form/Subform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/DSubform.json', $sDirName . '/form/Subform.json'); $this->aValues["form_type"] = 'default'; break; // Regénère le formulaire par défaut en fonction du fmw @@ -766,7 +777,6 @@ class Workspaces extends GTF { if (empty($oWorkspace->aFields["fmw_file"])) { $error_message .= "Any FME file founded in" . $sDirName . "/fme/ "; writeToErrorLog("WARNING: " . $error_message); - $aXmlRacineAttribute['status'] = 0; $this->aFields = array(); $this->aFields['errorMessage'] = $error_message; @@ -774,44 +784,44 @@ class Workspaces extends GTF { return $sMessage; } // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $oWorkspace->aFields["fmw_file"]); + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sDirName . '/fme/' . $oWorkspace->aFields["fmw_file"]); // Création des formulaires json. $oFmwParser = new GtfFmwParser($oWorkspace->aFields["fmw_file"], $this->aProperties, $sFmwFileContent); $aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]); - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', json_encode($aJson)) === false) + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/DSubform.json', json_encode($aJson)) === false) writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)"); //$oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]); break; // Remplace le formulaire publié par celui personnalisé case "Perso_Published" : - deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json', 'Subform.json'); + $oFilesManager->oFileInterface->unlink($sDirName . '/form/Subform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/WSubform.json', $sDirName . '/form/Subform.json'); $this->aValues["form_type"] = 'custom'; break; // Remplace le fornulaire personnalisé par le formulaire par défaut case "Perso_Reset": // Si le fichier par défaut n'existe pas, il est généré - if (!fileExistsInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json')) { + if (!$oFilesManager->oFileInterface->file_exists($sDirName . '/form/DSubform.json')) { $this->aValues["cmd"] = "Default_Reset"; $this->PUT(); } // Remplace 'Subform.json' par 'WSubform.json'. - deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'WSubform.json'); + $oFilesManager->oFileInterface->unlink($sDirName . '/form/WSubform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/DSubform.json', $sDirName . '/form/WSubform.json'); break; // Sauvegarde le formulaire personnalisé. case "Perso_Save": // Sauve le formulaire personnalisé. - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json', $this->aValues["Json"]) === false) + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/WSubform.json', $this->aValues["Json"]) === false) writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)"); // Sauve le javascript. if ($this->aValues["Js"] != "") { - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.js', $this->aValues["Js"]) === false) + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.js', $this->aValues["Js"]) === false) writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)"); } // Sauve le css. if ($this->aValues["Css"] != "") { - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.css', $this->aValues["Css"]) === false) + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.css', $this->aValues["Css"]) === false) writeToErrorLog("Subform.css can't be writed : " . $sDirName . "/form/ressources/Subform.css" . "(Workspaces.class.inc : verify the folder's rights)"); } break; @@ -824,7 +834,8 @@ class Workspaces extends GTF { // Upload du fichier de ressource. if (!empty($this->aValues["comp_file_file"])) { $this->aValues["comp_file"] = $this->aValues["comp_file_name"]; - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $this->aValues["comp_file_name"], $this->aValues["comp_file_file"]); + $sFilePath = $sDirName . '/fme/' . $this->aValues["comp_file_name"]; + $oFilesManager->oFileInterface->file_put_contents($sFilePath, $this->aValues["comp_file_file"]); // Si le fichier est une archive .zip -> décompression et copie du répertoire. if (pathinfo($this->aValues["comp_file"], PATHINFO_EXTENSION) == "zip") { $sZipFilePath = $this->aProperties['extract_dir'] . '/' . $this->aValues["comp_file_name"]; @@ -858,8 +869,8 @@ class Workspaces extends GTF { $aExt = explode(".", $this->aValues["fmw_file_name"]); if ($aExt[count($aExt) - 1] == "fmw") { // Sauve le nouveau fichier fmw. - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $this->aValues["fmw_file_name"], $this->aValues["fmw_file_file"]); - // Copie du .fmw original en .bak. + $sFilePath = $sDirName . '/fme/' . $this->aValues["fmw_file_name"]; + $oFilesManager->oFileInterface->file_put_contents($sFilePath, $this->aValues["fmw_file_file"]); if (!empty($sErrorMessage)) { writeToErrorLog($sErrorMessage); $oError = new VitisError(8, $sErrorMessage); @@ -867,21 +878,22 @@ class Workspaces extends GTF { $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } else { - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $this->aValues['fmw_file_name'], $this->aValues['fmw_file_name'] . '.bak'); + // Copie du .fmw original en .bak. + $oFilesManager->oFileInterface->copy($sDirName . '/fme/' . $this->aValues['fmw_file_name'], $sDirName . '/fme/' . $this->aValues['fmw_file_name'] . '.bak'); // Création des fichiers vides de ressources js et css. - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.js', ''); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.css', ''); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.js', ''); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/ressources/Subform.css', ''); // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $this->aValues['fmw_file_name']); + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sDirName . '/fme/' . $this->aValues['fmw_file_name']); // Sauve le .fmw sans les visualizers. $oFmwParser = new GtfFmwParser($this->aValues['fmw_file_name'], $this->aProperties, $sFmwFileContent); $oFmwParser->save($oFmwParser->sFmwFileName); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $this->aValues['fmw_file_name'], file_get_contents($oFmwParser->sFmwFileName)); + $oFilesManager->oFileInterface->file_put_contents($sDirName . '/fme/' . $this->aValues['fmw_file_name'], file_get_contents($oFmwParser->sFmwFileName)); // Création des formulaires json. $aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]); - if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', json_encode($aJson)) !== false && $oWorkspace->aFields["form_type"] == 'default') { - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'WSubform.json'); - copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'Subform.json'); + if ($oFilesManager->oFileInterface->file_put_contents($sDirName . '/form/DSubform.json', json_encode($aJson)) !== false) { + $oFilesManager->oFileInterface->copy($sDirName . '/form/DSubform.json', $sDirName . '/form/WSubform.json'); + $oFilesManager->oFileInterface->copy($sDirName . '/form/DSubform.json', $sDirName . '/form/Subform.json'); } // Récupère les anciens paramètres. $oFmwParser->getBdMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]); @@ -1053,7 +1065,9 @@ class Workspaces extends GTF { $oWorkspace->GET(); $sWorkspace_key = $oWorkspace->aFields["key"]; // Suppression du fichier de widget. - if (deleteFileFromWsDataDirTree('gtf', 'widget', '', '', $sWorkspace_key . '.html') === false) { + $oFilesManager = new Files_manager($this->aProperties); + $sFilePath = $this->aProperties['ws_data_dir'] . '/gtf/widget/' . $sWorkspace_key . '.html'; + if ($oFilesManager->oFileInterface->file_exists($sFilePath) && !$oFilesManager->oFileInterface->unlink($sFilePath)) { $aReturn = array('status' => 0, 'message' => 'DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY', 'error_code' => null); writeToErrorLog('Failed to remove the wisget file ' . $sWorkspace_key . '.html'); } @@ -1087,7 +1101,7 @@ class Workspaces extends GTF { } else $this->aFields['tree'] = $aWorkspaceDirectoryTree; - } + } else { $sWorkspaceDir = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme'; $sTreeName = 'fme'; @@ -1159,7 +1173,7 @@ class Workspaces extends GTF { // Sauve le nom et la date du fichier. $aFilteredDir['files'][] = array( 'path' => utf8_encode($sPath), - 'last_modif' => floor((time() - $aFileInfos['mtime']) / (24 * 3600)) // dernière modif. (Nb jours). + 'last_modif' => floor((time() - $aFileInfos['mtime']) / (24 * 3600)) // dernière modif. (Nb jours). ); } } @@ -1171,7 +1185,9 @@ class Workspaces extends GTF { */ function getWorkspaceFile() { // Chargement du contenu du fichier. - $sFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $this->aValues['file_name']); + $oFilesManager = new Files_manager($this->aProperties); + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $this->aValues['file_name']; + $sFileContent = $oFilesManager->oFileInterface->file_get_contents($sFilePath); if ($sFileContent !== false) { // Copie du fichier dans un répertoire temporaire. $sFilePath = $this->aProperties['extract_dir'] . '/' . getUniqRandomId() . '/' . $this->aValues['file_name']; @@ -1196,21 +1212,22 @@ class Workspaces extends GTF { * Check if Widget file exist */ function checkWidgetFile() { + $oFilesManager = new Files_manager($this->aProperties); $aReturn = array('status' => 1); unset($this->aPath[3]); $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection); $oWorkspace->GET(); $this->aFields['workspace_key'] = $oWorkspace->aFields["key"]; $sWidgetFile = $this->aFields['workspace_key'] . '.html'; - if (!fileExistsInWsDataDir('gtf', 'widget', '', '', $sWidgetFile)) { + $sFilePath = $this->aProperties['ws_data_dir'] . '/gtf/widget/' . $sWidgetFile; + if (!$oFilesManager->oFileInterface->file_exists($sFilePath)) { $aReturn = array('status' => 0, 'error_code' => 13, 'message' => 'The file ' . $sWidgetFile . ' does not exist.'); WriteToErrorLog("The file '$sWidgetFile' does not exist."); } else { // Url du fichier du widget. - $sFileUrl = getFileUrlInWsDataDir('gtf', 'widget', '', '', $sWidgetFile); - if ($sFileUrl !== false) - $this->aFields['widget_file_url'] = $sFileUrl; + $sFileUrl = $oFilesManager->oFileInterface->getProxyPassUrl($sFilePath); + $this->aFields['widget_file_url'] = $sFileUrl; } return $aReturn; } @@ -1219,8 +1236,10 @@ class Workspaces extends GTF { * Delete workspace file. */ function deleteWorkspaceFile() { + $oFilesManager = new Files_manager($this->aProperties); $aReturn = array('status' => 1, 'message' => ''); - if (deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $this->aValues['file_name']) === false) + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $this->aValues['file_name']; + if (!$oFilesManager->oFileInterface->unlink($sFilePath)) $aReturn = array('status' => 0, 'message' => 'DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY', 'error_code' => null); return $aReturn; } @@ -1232,7 +1251,9 @@ class Workspaces extends GTF { require $this->sRessourcesFile; $aFields = $this->getFields($this->aProperties['schema_gtf'], "workspace", "workspace_id"); // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $aFields['fmw_file']); + $oFilesManager = new Files_manager($this->aProperties); + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $aFields['fmw_file']; + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sFilePath); // Remplace les métas données. if ($sFmwFileContent !== false) { $oFmwParser = new GtfFmwParser($aFields['fmw_file'], $this->aProperties, $sFmwFileContent); @@ -1261,13 +1282,15 @@ class Workspaces extends GTF { function reintegrateMetadata() { $aFields = $this->getFields($this->aProperties['schema_gtf'], "workspace", "workspace_id"); // Lit le contenu du fichier .fmw du projet. - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $aFields['fmw_file']); + $oFilesManager = new Files_manager($this->aProperties); + $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $aFields['fmw_file']; + $sFmwFileContent = $oFilesManager->oFileInterface->file_get_contents($sFilePath); // Remplace les métas données. if ($sFmwFileContent !== false) { $oFmwParser = new GtfFmwParser($aFields['fmw_file'], $this->aProperties, $sFmwFileContent); $oFmwParser->getBdMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]); $oFmwParser->save($oFmwParser->sFmwFileName); - putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $aFields['fmw_file'], file_get_contents($oFmwParser->sFmwFileName)); + $oFilesManager->oFileInterface->file_put_contents($sFilePath, file_get_contents($oFmwParser->sFmwFileName)); $aReturn = array('status' => 1, 'message' => ''); } else { @@ -1392,4 +1415,4 @@ class Workspaces extends GTF { } } -?> \ No newline at end of file +?> -- GitLab