/** * Delete backups mass action * * @return Mage_Adminhtml_Controller_Action */ public function massDeleteAction() { $backupIds = $this->getRequest()->getParam('ids', array()); if (!is_array($backupIds) || !count($backupIds)) { return $this->_redirect('*/*/index'); } /** @var $backupModel Mage_Backup_Model_Backup */ $backupModel = Mage::getModel('backup/backup'); $resultData = new Varien_Object(); $resultData->setIsSuccess(false); $resultData->setDeleteResult(array()); Mage::register('backup_manager', $resultData); $deleteFailMessage = Mage::helper('backup')->__('Failed to delete one or several backups.'); try { $allBackupsDeleted = true; foreach ($backupIds as $id) { list($time, $type) = explode('_', $id); $backupModel->loadByTimeAndType($time, $type)->deleteFile(); if ($backupModel->exists()) { $allBackupsDeleted = false; $result = Mage::helper('adminhtml')->__('failed'); } else { $result = Mage::helper('adminhtml')->__('successful'); } $resultData->setDeleteResult(array_merge($resultData->getDeleteResult(), array($backupModel->getFileName() . ' ' . $result))); } $resultData->setIsSuccess(true); if ($allBackupsDeleted) { $this->_getSession()->addSuccess(Mage::helper('backup')->__('The selected backup(s) has been deleted.')); } else { throw new Exception($deleteFailMessage); } } catch (Exception $e) { $resultData->setIsSuccess(false); $this->_getSession()->addError($deleteFailMessage); } return $this->_redirect('*/*/index'); }