123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- Action::register('customiser_theme_save',function(&$response){
- global $myUser,$_,$conf;
- User::check_access('customiser','configure');
- $conf->put('core_theme',$_['theme']);
- });
- //Theme : Gestion upload Zip theme
- Action::register('customiser_theme_zipTheme',function(&$response){
- User::check_access('customiser','configure');
- File::handle_component(array(
- 'namespace' => 'customiser', //stockés dans file/customiser/*.*
- 'access' => 'customiser', // crud sur customiser,
- 'size' => '1000000000', // taille max
- 'extension' => 'zip',
- 'storage' => 'theme/upload.zip'
- ),$response);
- });
- Action::register('customiser_theme_install',function(&$response){
- global $_,$myUser ;
- require_once(__DIR__.SLASH.'Theme.class.php');
- User::check_access('customiser','configure');
- if(empty($_['file'])) return;
- try{
- File::save_component('file', 'theme/upload.zip');
- $zipFile = File::dir().SLASH.'theme/upload.zip';
- $zip = new ZipArchive();
- if(!$zip->open($zipFile)) throw new Exception("Impossible d'ouvrir l'import");
- $app = $zip->getFromName('app.json');
- if(!$app) throw new Exception('Fichier app.json manquant à la racine de l\'archive');
- $app = json_decode($app,true);
- $folderId = str_replace(array('..','/','\\'),array('.',''),$app['id']);
- $templateDir = Theme::dir().$folderId;
- if(file_exists($templateDir)) throw new Exception('Le thème '.$folderId.' est déja installé sur cette application');
- mkdir($templateDir,0755,true);
- unzip($zipFile,$templateDir,array('allowedExtensions'=>array('css','json','jpg','png','bmp','jpeg','webp','woff','woff2','eot','ttf','svg')));
- }catch(Exception $e){
- if(file_exists($zipFile)) unlink($zipFile);
- throw $e;
- }
- });
- ?>
|