/** * Import products */ public function actionImport() { $importer = new CsvImporter(); $importer->deleteDownloadedImages = Yii::app()->request->getPost('remove_images'); if (Yii::app()->request->isPostRequest && isset($_FILES['file'])) { $importer->file = $_FILES['file']['tmp_name']; if ($importer->validate() && !$importer->hasErrors()) { // Create db backup if (isset($_POST['create_dump']) && $_POST['create_dump']) { Yii::import('application.components.SDatabaseDumper'); $dumper = new SDatabaseDumper(); $file = Yii::getPathOfAlias('webroot.protected.backups') . DIRECTORY_SEPARATOR . 'dump_' . date('Y-m-d_H_i_s') . '.sql'; if (is_writable(Yii::getPathOfAlias('webroot.protected.backups'))) { if (function_exists('gzencode')) { file_put_contents($file . '.gz', gzencode($dumper->getDump())); } else { file_put_contents($file, $dumper->getDump()); } } else { throw new CHttpException(503, Yii::t('CsvModule.admin', 'Ошибка. Директория для бэкапов недоступна для записи.')); } } $importer->import(); } } $this->render('import', array('importer' => $importer)); }
public function actionBackup() { Yii::import('SDatabaseDumper'); $dumper = new SDatabaseDumper(); // Get path to new backup file $file = Yii::getPathOfAlias('webroot.protected.backups') . '/dump.' . Yii::app()->dateFormatter->format("yyyyMMdd", time()) . '.sql'; // Gzip dump if (function_exists('gzencode')) { file_put_contents($file . '.gz', gzencode($dumper->getDump())); } else { file_put_contents($file, $dumper->getDump()); } Yii::app()->user->setFlash('success', '<strong>Great!</strong> backup process finished..'); $this->redirect(array('/menu')); }