/** * Package installation to FS * @param Mage_Connect_Package $package * @param string $file * @return void * @throws Exception */ public function processInstallPackage($package, $file, $configObj) { $contents = $package->getContents(); $arc = $this->getArchiver(); $target = dirname($file) . DS . $package->getReleaseFilename(); @mkdir($target, 0777, true); $tar = $arc->unpack($file, $target); $modeFile = $this->_getFileMode($configObj); $modeDir = $this->_getDirMode($configObj); foreach ($contents as $file) { $fileName = basename($file); $filePath = dirname($file); $source = $tar . DS . $file; $targetPath = rtrim($configObj->magento_root, "\\/"); @mkdir($targetPath . DS . $filePath, $modeDir, true); $dest = $targetPath . DS . $filePath . DS . $fileName; if (is_file($source)) { @copy($source, $dest); if ($modeFile) { @chmod($dest, $modeFile); } } else { @mkdir($dest, $modeDir); } } $packageXml = $tar . Mage_Connect_Package_Reader::DEFAULT_NAME_PACKAGE; if (is_file($packageXml)) { $destDir = $targetPath . DS . Mage_Connect_Package::PACKAGE_XML_DIR; $destFile = $package->getReleaseFilename() . '.xml'; $dest = $destDir . DS . $destFile; @copy($packageXml, $dest); @chmod($dest, $modeFile); } Mage_System_Dirs::rm(array("-r", $target)); }
/** * Package installation to FS * @param Mage_Connect_Package $package * @param string $file * @return void * @throws Exception */ public function processInstallPackage($package, $file, $configObj) { $contents = $package->getContents(); $arc = $this->getArchiver(); $target = dirname($file) . DS . $package->getReleaseFilename(); @mkdir($target, 0777, true); $mode = $configObj->global_dir_mode; $tar = $arc->unpack($file, $target); $modeFile = $configObj->global_file_mode; $modeDir = $configObj->global_dir_mode; foreach ($contents as $file) { $fileName = basename($file); $filePath = dirname($file); $source = $tar . DS . $file; $targetPath = rtrim($configObj->magento_root, "\\/"); @mkdir($targetPath . DS . $filePath, $modeDir, true); $dest = $targetPath . DS . $filePath . DS . $fileName; if (is_file($source)) { @copy($source, $dest); if ($modeFile) { @chmod($dest, $modeFile); } } else { @mkdir($dest, $modeDir); } } Mage_System_Dirs::rm(array("-r", $target)); }