uploadItem WIP

This commit is contained in:
fredtempez 2021-03-26 18:16:06 +01:00
parent 66c4395069
commit 3fad88dcbc
1 changed files with 43 additions and 14 deletions

View File

@ -26,7 +26,7 @@ class addon extends common {
'store' => self::GROUP_ADMIN, 'store' => self::GROUP_ADMIN,
'item' => self::GROUP_ADMIN, 'item' => self::GROUP_ADMIN,
'upload' => self::GROUP_ADMIN, 'upload' => self::GROUP_ADMIN,
'storeUpload'=> self::GROUP_ADMIN 'uploadItem'=> self::GROUP_ADMIN
]; ];
const URL_STORE = 'http://zwiicms.fr/?modules/list'; const URL_STORE = 'http://zwiicms.fr/?modules/list';
@ -203,7 +203,7 @@ class addon extends common {
} }
/*** /***
* Installation manuel d'un module à partir du gestionnaire de fichier * Installation d'un module à partir du gestionnaire de fichier
*/ */
public function upload() { public function upload() {
// Soumission du formulaire // Soumission du formulaire
@ -229,20 +229,49 @@ class addon extends common {
} }
/*** /***
* Installation manuel d'un module par le catalogue * Installation d'un module par le catalogue
*/ */
public function uploadStore() { public function uploadItem() {
// Installation d'un module // Jeton incorrect
$success = true; if ($this->getUrl(3) !== $_SESSION['csrf']) {
$checkValidMaj = $this->getInput('configModulesCheck', helper::FILTER_BOOLEAN); // Valeurs en sortie
$zipFilename = $this->getInput('configModulesInstallation', helper::FILTER_STRING_SHORT); $this->addOutput([
if( $zipFilename !== ''){ 'redirect' => helper::baseUrl() . 'store',
$state = $this->install(self::FILE_DIR.'source/'.$zipFilename, $checkValidMaj); 'state' => false,
'notification' => 'Action non autorisée'
]);
} else {
// Récupérer le module en ligne
$moduleName = $this->getUrl(2);
// Informations sur les module en ligne
$store = json_decode(helper::urlGetContents(self::URL_STORE), true);
// Url du module à télécharger
$moduleFile = $store[$moduleName]['file'];
// Télécharger le fichier =
$moduleData = helper::urlGetContents(self::BASEURL_STORE . self::FILE_DIR . $moduleFile);
// Stocker le fichier dans un dossier local
file_put_contents(self::FILE_DIR . 'source/modules/' . $moduleFile, $moduleData);
if (!is_dir(self::FILE_DIR . 'source/modules')) {
mkdir (self::FILE_DIR . 'source/modules');
}
$success = true;
$checkValidMaj = $this->getInput('configModulesCheck', helper::FILTER_BOOLEAN);
$zipFilename = $this->getInput('configModulesInstallation', helper::FILTER_STRING_SHORT);
if( $zipFilename !== ''){
$state = $this->install(self::FILE_DIR.'source/'.$zipFilename, $checkValidMaj);
}
$this->addOutput([
//'redirect' => helper::baseUrl() . $this->getUrl(),
'notification' => $state['notification'],
'state' => $state['success']
]);
} }
// Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(), 'title' => 'Catalogue de modules',
'notification' => $state['notification'], 'view' => 'store'
'state' => $state['success']
]); ]);
} }
@ -283,7 +312,7 @@ class addon extends common {
implode(', ', array_keys($inPagesTitle,$key)), implode(', ', array_keys($inPagesTitle,$key)),
template::button('moduleExport' . $key, [ template::button('moduleExport' . $key, [
'class' => $class, 'class' => $class,
'href' => helper::baseUrl(). $this->getUrl(0) . '/installModule/' . $key.'/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre 'href' => helper::baseUrl(). $this->getUrl(0) . '/uploadItem/' . $key.'/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre
'value' => $ico 'value' => $ico
]) ])
]; ];