public static function updateFromZip($fileRaw, $updateInfo) { N2Loader::import('libraries.zip.zip_read'); $tmpHandle = tmpfile(); fwrite($tmpHandle, $fileRaw); $metaData = stream_get_meta_data($tmpHandle); $tmpFilename = $metaData['uri']; $zip = new N2ZipRead(); $files = $zip->read_zip($tmpFilename); $updateFolder = N2Filesystem::getNotWebCachePath() . '/update/'; $zip->recursive_extract($files, $updateFolder); fclose($tmpHandle); $installer = JInstaller::getInstance(); $installer->setOverwrite(true); if (!$installer->install($updateFolder)) { N2Filesystem::deleteFolder($updateFolder); return false; } N2Filesystem::deleteFolder($updateFolder); return true; }