/** * Download the module from an url * * @param $url * @param $dest * @return bool */ public static function download($url, $name, $dest = null) { if ($dest == null) { $dest = \Module::getPath(); } $tmpName = date($name . '-Ymdhis.zip'); $result = file_put_contents(__DIR__ . "/" . $tmpName, fopen($url, 'r')); if ($result) { $zip = new ZipArchive(); if ($zip->open(__DIR__ . "/" . $tmpName) === true) { $destFolder = $dest . '/' . $name; $oldFolder = ""; if (is_dir($destFolder)) { $oldFolder = $destFolder . '-old'; if (is_dir($oldFolder)) { \File::deleteDirectory($oldFolder); } rename($destFolder, $oldFolder); } $tmpFolder = $dest . '/' . $name . '-tmp'; $zip->extractTo($tmpFolder); $zip->close(); $file = glob($tmpFolder . '/*'); $result = rename($file[0], $destFolder); \File::deleteDirectory($tmpFolder); if ($result) { \File::deleteDirectory($oldFolder); } return $result; } else { return false; } } return false; }
public function anyModules($action = "view") { $aModules = Arxmin::getModulesAvailables(); if ($action == 'download') { $result = Module::download(Input::get('link'), Input::get('name'), \Module::getPath()); } $title = trans("Modules Discovery"); /*$oModules = Arxmin::getModules(); foreach ($oModules as $module) { $aModules[] = [ 'title' => $module->name, 'description' => $module->name, ]; }*/ return $this->viewMake('arxmin::modules.home', get_defined_vars()); }