/** * 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)); }
/** * Import default demo data */ private function importCsvFiles() { $files = array('laptops', 'computer_sound', 'monitors', 'phones', 'tablets'); foreach ($files as $file) { $importer = new CsvImporter(); $importer->file = Yii::getPathOfAlias('application.modules.install.data') . DIRECTORY_SEPARATOR . $file . '.csv'; if ($importer->validate() && !$importer->hasErrors()) { $importer->import(); } } StoreProduct::model()->updateAll(array('is_active' => 1)); }