Ejemplo n.º 1
0
 /**
  * Execute the action.
  */
 public function execute()
 {
     parent::execute();
     $this->loadData();
     if ($this->getParameter('module') !== NULL) {
         $module = $this->getParameter('module');
         $files = array();
         // frontend files
         $frontendDir = FRONTEND_PATH . "/Modules/" . $module . "/";
         // check if dir exist
         if (file_exists($frontendDir)) {
             $dir = new \RecursiveDirectoryIterator($frontendDir);
             foreach (new \RecursiveIteratorIterator($dir) as $filename => $file) {
                 $files[] = str_replace(PATH_WWW . '/', '', $filename);
             }
         }
         // backend files
         $backendDir = BACKEND_PATH . "/Modules/" . $module . "/";
         // check if dir exist
         if (file_exists($backendDir)) {
             $dir = new \RecursiveDirectoryIterator($backendDir);
             foreach (new \RecursiveIteratorIterator($dir) as $filename => $file) {
                 $files[] = str_replace(PATH_WWW . '/', '', $filename);
             }
         }
         // we found some files
         if (!empty($files)) {
             // create zip
             if (BackendModuleMakerHelper::createZip($files, PATH_WWW . '/' . $module . '.zip')) {
                 // download zip
                 header('Content-Type: application/zip');
                 header('Content-disposition: attachment; filename=' . $module . '.zip');
                 header('Content-Length: ' . filesize(PATH_WWW . '/' . $module . '.zip'));
                 readfile(PATH_WWW . '/' . $module . '.zip');
                 // delete temp file
                 \Spoonfile::delete(PATH_WWW . '/' . $module . '.zip');
                 exit;
             }
         } else {
             $this->redirect(Model::createURLForAction('create_zip') . '&error=non-existing');
         }
     } else {
         $this->loadDataGridInstalled();
         $this->loadDataGridInstallable();
         $this->parse();
         $this->display();
     }
 }