*/ class Mage_Backup_Model_Observer { const XML_PATH_BACKUP_ENABLED = 'system/backup/enabled'; const XML_PATH_BACKUP_TYPE = 'system/backup/type'; const XML_PATH_BACKUP_MAINTENANCE_MODE = 'system/backup/maintenance'; /** * Error messages * * @var array */ protected $_errors = array(); /** * Create Backup * * @return Mage_Log_Model_Cron */ public function scheduledBackup() { if (!Mage::getStoreConfigFlag(self::XML_PATH_BACKUP_ENABLED)) { return $this; } if (Mage::getStoreConfigFlag(self::XML_PATH_BACKUP_MAINTENANCE_MODE)) { Mage::helper('backup')->turnOnMaintenanceMode(); } $type = Mage::getStoreConfig(self::XML_PATH_BACKUP_TYPE); $this->_errors = array(); try { $backupManager = Mage_Backup::getBackupInstance($type) ->setBackupExtension(Mage::helper('backup')->getExtensionByType($type)) ->setTime(time()) ->setBackupsDir(Mage::helper('backup')->getBackupsDir()); Mage::register('backup_manager', $backupManager); if ($type != Mage_Backup_Helper_Data::TYPE_DB) { $backupManager->setRootDir(Mage::getBaseDir()) ->addIgnorePaths(Mage::helper('backup')->getBackupIgnorePaths()); } $backupManager->create(); Mage::log(Mage::helper('backup')->getCreateSuccessMessageByType($type)); } catch (Exception $e) { $this->_errors[] = $e->getMessage(); $this->_errors[] = $e->getTrace(); Mage::log($e->getMessage(), Zend_Log::ERR); Mage::logException($e); } if (Mage::getStoreConfigFlag(self::XML_PATH_BACKUP_MAINTENANCE_MODE)) { Mage::helper('backup')->turnOffMaintenanceMode(); } return $this; } }