Téléchargement depuis le store en attendant l'installation automatique

This commit is contained in:
fredtempez 2021-03-26 20:26:26 +01:00
parent 3fad88dcbc
commit e5b0ff0311
1 changed files with 25 additions and 15 deletions

View File

@ -209,10 +209,13 @@ class addon extends common {
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { if($this->isPost()) {
// Installation d'un module // Installation d'un module
$success = true;
$checkValidMaj = $this->getInput('configModulesCheck', helper::FILTER_BOOLEAN); $checkValidMaj = $this->getInput('configModulesCheck', helper::FILTER_BOOLEAN);
$zipFilename = $this->getInput('configModulesInstallation', helper::FILTER_STRING_SHORT); $zipFilename = $this->getInput('configModulesInstallation', helper::FILTER_STRING_SHORT);
if( $zipFilename !== ''){ if( $zipFilename !== ''){
$success = [
'success' => false,
'notification'=> ''
];
$state = $this->install(self::FILE_DIR.'source/'.$zipFilename, $checkValidMaj); $state = $this->install(self::FILE_DIR.'source/'.$zipFilename, $checkValidMaj);
} }
$this->addOutput([ $this->addOutput([
@ -246,25 +249,32 @@ class addon extends common {
// Informations sur les module en ligne // Informations sur les module en ligne
$store = json_decode(helper::urlGetContents(self::URL_STORE), true); $store = json_decode(helper::urlGetContents(self::URL_STORE), true);
// Url du module à télécharger // Url du module à télécharger
$moduleFile = $store[$moduleName]['file']; $moduleFilePath = $store[$moduleName]['file'];
// Télécharger le fichier = // Télécharger le fichier
$moduleData = helper::urlGetContents(self::BASEURL_STORE . self::FILE_DIR . $moduleFile); $moduleData = helper::urlGetContents(self::BASEURL_STORE . self::FILE_DIR . 'source/' . $moduleFilePath);
// Stocker le fichier dans un dossier local // Extraire de l'arborescence
file_put_contents(self::FILE_DIR . 'source/modules/' . $moduleFile, $moduleData); $d = explode('/',$moduleFilePath);
$moduleFile = $d[count($d)-1];
// Créer le dossier modules
if (!is_dir(self::FILE_DIR . 'source/modules')) { if (!is_dir(self::FILE_DIR . 'source/modules')) {
mkdir (self::FILE_DIR . 'source/modules'); mkdir (self::FILE_DIR . 'source/modules');
} }
// Sauver les données du fichiers
file_put_contents(self::FILE_DIR . 'source/modules/' . $moduleFile, $moduleData);
$success = true; /**
$checkValidMaj = $this->getInput('configModulesCheck', helper::FILTER_BOOLEAN); * $if( $moduleFile !== ''){
$zipFilename = $this->getInput('configModulesInstallation', helper::FILTER_STRING_SHORT); * $success = [
if( $zipFilename !== ''){ * 'success' => false,
$state = $this->install(self::FILE_DIR.'source/'.$zipFilename, $checkValidMaj); * 'notification'=> ''
} * ];
* $state = $this->install(self::FILE_DIR.'source/modules/'.$moduleFile, false);
*}
*/
$this->addOutput([ $this->addOutput([
//'redirect' => helper::baseUrl() . $this->getUrl(), 'redirect' => helper::baseUrl() . 'addon/store',
'notification' => $state['notification'], 'notification' => $moduleFile . ' téléchargé dans le dossier modules du gestionnaire de fichiers',
'state' => $state['success'] 'state' => true
]); ]);
} }