Example #1
0
 /**
  * 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'));
 }