From 39dc9722f1e1f3dc67324311bd8a7beda9ec9b76 Mon Sep 17 00:00:00 2001 From: "tristan.champomier" Date: Fri, 25 Dec 2020 06:06:52 +0100 Subject: [PATCH] Continued fixing #42 --- data/message/fr/installmanager.ini | 7 + .../installmanager/beforeinstall.mxt | 178 ++++++++---------- .../installmanager/install.mxt | 168 +++++++---------- .../installmanager/listinstall.mxt | 18 +- .../installmanager/installdriver.php | 66 +++++-- .../installmanager/installfactory.php | 2 +- .../installmanager/installmanager.php | 46 ++--- 7 files changed, 238 insertions(+), 247 deletions(-) diff --git a/data/message/fr/installmanager.ini b/data/message/fr/installmanager.ini index d1aa2c2..9070743 100755 --- a/data/message/fr/installmanager.ini +++ b/data/message/fr/installmanager.ini @@ -1,3 +1,9 @@ +#Titres des pages +actionInstallTitlePage = "Téléchargement et Mises à jour de la plateforme et des outils" +listInstallTitlePage = "Installation et Désinstallation des paquets" +beforeInstallTitlePage = "Vérification des dépendances et des opérations à effectuer" +bkpManageInstallTitlePage = "Gestion des sauvegardes de bases de données et des sources" + # Formulaire de configuration TxtFtp = "Ftp de récupération des installations/upgrades : " TxtLogin = "Identifiant du ftp : " @@ -107,6 +113,7 @@ BtnFinUninstall = "Suivant" TxtFinUninstall = "L'ensemble des fichiers et répertoires relatifs à l'élément sélectionné a été supprimé, veuillez passer à l'étape suivante pour finaliser la désinstallation." TxtUninstall = "Avant de désinstaller ce composant assurez-vous de bien avoir effectué une sauvegarde avant de continuer." TxtFinInstall = "Fin du processus d'installation de votre paquet, veuillez passer à l'étape suivante pour obtenir un récapitulatif." +TxtBackupTitle = "Sauvegarde du système" TxtBackup = "Désirez vous faire une sauvegarde de votre système ? Cette sauvegarde permettra de restaurer vos données et/ou vos anciens scripts (cette option peut prendre un espace disque important)." SuccessCopy="Copie réussie" TxtStatutErase="Etat de la suppression" diff --git a/data/template/lcube6/object_coordination/installmanager/beforeinstall.mxt b/data/template/lcube6/object_coordination/installmanager/beforeinstall.mxt index da5b1af..7c40af2 100755 --- a/data/template/lcube6/object_coordination/installmanager/beforeinstall.mxt +++ b/data/template/lcube6/object_coordination/installmanager/beforeinstall.mxt @@ -1,107 +1,81 @@ -
-
-
-

()

-

-

-
-
- -
-
-
-
-
- -
-
-
 
-
 
-
 
-
 
-
- - - - - - - - - - - - - - - - - - - - - - +
  • + + "> + + +
  • + + +
    +
    +
    +

    ()

    +
    +
    +

    +

    +
    +
    +

    +
    +
    +
    picto
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    picto
    +
    - -
    - -
    - + +
    +

    +
    +
    +
    + +
    +
    + -
    - - - - - +
    +
    + +
    +
    + - - diff --git a/data/template/lcube6/object_coordination/installmanager/install.mxt b/data/template/lcube6/object_coordination/installmanager/install.mxt index 4ac6d72..72ef0a2 100755 --- a/data/template/lcube6/object_coordination/installmanager/install.mxt +++ b/data/template/lcube6/object_coordination/installmanager/install.mxt @@ -1,98 +1,76 @@ -
    -
    -
    -

    ()

    -

    +
  • + + "> + + +
  • + + +
    +
    +
    +

    ()

    +
    +
    +

    +
    +
    +

    +
    +
    + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
     
    -
     
    -
    - - - - - - - - - - - - - -
    - - - - - - - - - - - - -
    -
    - - - - - -
    -
    - - diff --git a/data/template/lcube6/object_coordination/installmanager/listinstall.mxt b/data/template/lcube6/object_coordination/installmanager/listinstall.mxt index 5b1c199..5c876a5 100755 --- a/data/template/lcube6/object_coordination/installmanager/listinstall.mxt +++ b/data/template/lcube6/object_coordination/installmanager/listinstall.mxt @@ -33,14 +33,14 @@ - - + + - - + + - + @@ -70,7 +70,7 @@ - + @@ -107,7 +107,7 @@ - + @@ -144,7 +144,7 @@ - + @@ -181,7 +181,7 @@ - + diff --git a/lib/object_coordination/installmanager/installdriver.php b/lib/object_coordination/installmanager/installdriver.php index 3c18f57..be4a7b3 100755 --- a/lib/object_coordination/installmanager/installdriver.php +++ b/lib/object_coordination/installmanager/installdriver.php @@ -101,6 +101,26 @@ var $dbUninstallFile= "uninstall"; */ function __beforeInstall($url) { + /* gestion du lib en fonction de la langue courante */ + $currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode(); + $defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]; + /* fin récupèration des codes par defaut */ + + mxPageTitle("beforeInstallTitlePage"); + + $arrayCallCss = array(); + $arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css"; + mxCallCss($arrayCallCss); + + $arrayCallJs = array(); + $arrayCallJs[] = "data/javascript/jquery.dataTables/1.10.22/jquery.dataTables.min.js"; + $arrayCallJs[] = "data/javascript/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.js"; + mxCallJs($arrayCallJs); + + $arrayRawJs[] = "\$(document).ready(function(){\$('#tabListScripts').dataTable({\"bPaginate\": true,\"bFilter\": false,\"bInfo\": true,\"sPaginationType\": \"full_numbers\",\"bAutoWidth\": false,\"bLengthChange\": false,\"aaSorting\": [[ 1, \"asc\" ]],\"iDisplayLength\": 10,\"oLanguage\": {\"sUrl\": \"data/message/".$currentCode."/datatables.txt\"}});});"; + $arrayRawJs[] = "function visible(element){if(document.getElementById){if(document.getElementById(element).style.display=='none'){document.getElementById(element).style.display='';}else{document.getElementById(element).style.display='none';}}else if(document.all){if(document.all[element].style.display=='none'){document.all[element].style.display='';}else{document.all[element].style.display='none';}}}"; + mxRawJs($arrayRawJs); + includePackage ("backup.php"); $backup =new backup(); $tabficini =array(); @@ -160,18 +180,19 @@ var $dbUninstallFile= "uninstall"; if ($checkBd==1) { //Affichage du fichier sql dans une div - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("ficBD",$sourcepath."install.".DATA_SOURCE_SQL_TYPE.".sql"); - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("typeBD", DATA_SOURCE_SQL_TYPE); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.ficBD",$sourcepath."install.".DATA_SOURCE_SQL_TYPE.".sql"); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.typeBD", DATA_SOURCE_SQL_TYPE); //Lecture du fichier et affichage du contenu $fichier=new File($sourcepath."install.".DATA_SOURCE_SQL_TYPE.".sql"); - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("scriptBD",str_replace("\n", "
    ", $fichier->readAll())); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.scriptBD",str_replace("\n", "
    ", $fichier->readAll())); $fichier->close(); }else if($checkBd==2){ // L'installation à besoin d'une BD... mais n'a pas le type courant -> erreur $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("NoDatabase", getMessage("WrongTypeBd")); } else if ($checkBd==0){ - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("NoDatabase", getMessage("NoBd")); + $GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("BLOCBD", "delete"); +// $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("NoDatabase", getMessage("NoBd")); } $msg=""; @@ -181,13 +202,13 @@ var $dbUninstallFile= "uninstall"; if (file_exists($iniPath)) { //Parcours du fichier ini - $tabficini=$backup->parcoursInitotab($iniPath, $sourcepath,$droit); + $tabficini=$backup->parcoursInitotab($iniPath, $sourcepath, $droit); if (count($tabficini)>0) { $tabRight=$backup->verifFilePermFromTab($tabficini, $droit); //Test des droits sur les fichiers foreach($tabficini as $key=>$val) - { + { //On verifie l'existence du fichier if (($tabficini[$key][1] === True)) { @@ -258,6 +279,27 @@ var $dbUninstallFile= "uninstall"; */ function __install($installName, $doBackup, $url) { + /* gestion du lib en fonction de la langue courante */ + $currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode(); + $defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]; + /* fin récupèration des codes par defaut */ + + mxPageTitle("beforeInstallTitlePage"); + + $arrayCallCss = array(); + $arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css"; + mxCallCss($arrayCallCss); + + $arrayCallJs = array(); + $arrayCallJs[] = "data/javascript/jquery.dataTables/1.10.22/jquery.dataTables.min.js"; + $arrayCallJs[] = "data/javascript/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.js"; + mxCallJs($arrayCallJs); + + $arrayRawJs[] = "\$(document).ready(function(){\$('#tabListFiles').dataTable({\"bPaginate\": false,\"bFilter\": false,\"bInfo\": false,\"bAutoWidth\": false,\"bLengthChange\": false,\"aaSorting\": [[ 1, \"asc\" ]],\"oLanguage\": {\"sUrl\": \"data/message/".$currentCode."/datatables.txt\"}});});"; + $arrayRawJs[] = "\$(document).ready(function(){\$('#tabListBDScripts').dataTable({\"bPaginate\": false,\"bFilter\": false,\"bInfo\": false,\"bAutoWidth\": false,\"bLengthChange\": false,\"aaSorting\": [[ 1, \"asc\" ]],\"oLanguage\": {\"sUrl\": \"data/message/".$currentCode."/datatables.txt\"}});});"; + $arrayRawJs[] = "function visible(element){if(document.getElementById){if(document.getElementById(element).style.display=='none'){document.getElementById(element).style.display='';}else{document.getElementById(element).style.display='none';}}else if(document.all){if(document.all[element].style.display=='none'){document.all[element].style.display='';}else{document.all[element].style.display='none';}}}"; + mxRawJs($arrayRawJs); + //Récupération du contenu du fichier ini. includePackage ("backup.php"); $backup = new backup(); @@ -354,20 +396,22 @@ var $dbUninstallFile= "uninstall"; //Création BD if (file_exists($sourcepath.$this->dbInstallFile.".". DATA_SOURCE_SQL_TYPE .".sql")) { - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.nomficDB",$this->dbInstallFile.".". DATA_SOURCE_SQL_TYPE .".sql" ); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("TABLEBD.BLOCBD.nomficDB",$this->dbInstallFile.".". DATA_SOURCE_SQL_TYPE .".sql" ); //Execution du script de création de la bd if ($backup->restorebackUpDB($sourcepath,$this->dbInstallFile.".". DATA_SOURCE_SQL_TYPE .".sql")) { - $GLOBALS["SYSTEM_TEMPLATE"]-> MxAttribut("BLOCBD.class", "lnColor3"); - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.statutDB", getMessage("SuccessBD")); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxAttribut("TABLEBD.BLOCBD.class", "lnColor3"); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("TABLEBD.BLOCBD.statutDB", getMessage("SuccessBD")); } else { - $GLOBALS["SYSTEM_TEMPLATE"]-> MxAttribut("BLOCBD.class", "lnColor1"); - $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("BLOCBD.statutDB", getMessage("ErrorBD")); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxAttribut("TABLEBD.BLOCBD.class", "lnColor1"); + $GLOBALS["SYSTEM_TEMPLATE"]-> MxText("TABLEBD.BLOCBD.statutDB", getMessage("ErrorBD")); return "ErrorCreateDB"; } + } else { + $GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("TABLEBD", "delete"); } return ""; } diff --git a/lib/object_coordination/installmanager/installfactory.php b/lib/object_coordination/installmanager/installfactory.php index 2ee798b..0beda09 100755 --- a/lib/object_coordination/installmanager/installfactory.php +++ b/lib/object_coordination/installmanager/installfactory.php @@ -43,7 +43,7 @@ Class InstallFactory */ function getInstallDriver($pkgName, $rootDir){ $path=$rootDir; - $tmp=split("-", $pkgName); + $tmp=mb_split("-", $pkgName); if ( (is_dir($path)) && (file_exists($path."/installdriver".$tmp[1].".php")) ){ # on utilise le driver de l'install include_once($path."/installdriver".$tmp[1].".php"); diff --git a/lib/object_coordination/installmanager/installmanager.php b/lib/object_coordination/installmanager/installmanager.php index 935af61..bd7411d 100755 --- a/lib/object_coordination/installmanager/installmanager.php +++ b/lib/object_coordination/installmanager/installmanager.php @@ -84,7 +84,7 @@ Class InstallManager extends CoordinationObj $defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]; /* fin récupèration des codes par defaut */ - mxPageTitle("actionAdminTitlePage"); + mxPageTitle("actionInstallTitlePage"); $arrayCallCss = array(); $arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css"; @@ -139,8 +139,6 @@ Class InstallManager extends CoordinationObj { //Listing du rep distant $tabdir=$connection->getContentDir("."); -// var_dump($tabdir); -// exit(0); //Teste de l'existence des packages et telechargement si on les possede pas deja for ($i=0;$igetSize($tabdir[$i][0]."/".$tabdir[$i][2].".tar"); @@ -186,10 +182,6 @@ Class InstallManager extends CoordinationObj $tabDownLoadCp[]=substr($tabDownload[$i][2], 0, (strlen($tabDownload[$i][2])-4)); } } - -// var_dump($tabDownLoadCp); -// var_dump($tabPackage); -// exit(0); //Teste de l'existence des packages et telechargement si on les possede pas deja $nb=count($tabPackage); @@ -210,9 +202,6 @@ Class InstallManager extends CoordinationObj $GLOBALS["SYSTEM_TEMPLATE"]->MxAttribut("urlUpload", formatUrl($this->getId(), "InstallManager", "uploadInstall")); $tabDel=array(); -// var_dump($tabPackage); -// exit(0); - // if( is_array($tabPackage) && count($tabPackage) > 0 ) // { foreach($tabPackage as $key=>$val) @@ -346,7 +335,7 @@ Class InstallManager extends CoordinationObj $defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]; /* fin récupèration des codes par defaut */ - mxPageTitle("actionAdminTitlePage"); + mxPageTitle("listInstallTitlePage"); $arrayCallCss = array(); $arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css"; @@ -489,12 +478,8 @@ Class InstallManager extends CoordinationObj * @access public * @return chaine code message */ - function uploadInstall(){ - -// var_dump($_FILES); -// var_dump($_POST); -// exit(0); - + function uploadInstall() + { includePackage("upload.php"); includePackage("backup.php"); @@ -597,19 +582,22 @@ Class InstallManager extends CoordinationObj } # Décompression du package - includePackage("archive.php"); - includePackage("backup.php"); - $backup=new backup(); - $chmod=$backup->checkConfigForPerms(); - $archive = new tar_file("../packagesrc/".$detailId.".tar"); - $archive->set_options(array("basedir" => ($GLOBALS["CONF_DATA_PATH"]."data/upload/install/package/"), "overwrite" => 1) ); - $archive->extract_files($chmod); - if (count($archive->error)!=0){ +// includePackage("archive.php"); +// includePackage("backup.php"); +// $backup=new backup(); +// $chmod=$backup->checkConfigForPerms(); + + try { + $archive = new PharData($GLOBALS["CONF_DATA_PATH"]."data/upload/install/packagesrc/".$detailId.".tar"); + $archive->extractTo($GLOBALS["CONF_DATA_PATH"]."data/upload/install/package/".$detailId, null, true); + } catch (Exception $e) { # Décompression non valide systemRedirect(formatUrl($this->getId(),"InstallManager", "listInstall", "wrongArgument")); - die(); return ""; } + #TODO : Check and define scripts permissions +// $archive->extract_files($chmod); + # Construction du manager... includeDep("installmanager/installfactory.php"); includeDep("installmanager/installdriver.php"); @@ -816,7 +804,7 @@ Class InstallManager extends CoordinationObj $defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]; /* fin récupèration des codes par defaut */ - mxPageTitle("actionAdminTitlePage"); + mxPageTitle("bkpManageInstallTitlePage"); $arrayCallCss = array(); $arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css";