public function storeDataset() { if (isset($_SESSION['dataset']) && isset($_SESSION['images'])) { $dataset = new Dataset(); $dataset->image = new Images(); $result = Dataset::model()->findAllBySql("select identifier from dataset order by identifier desc limit 1;"); $max_doi = $result[0]->identifier; $identifier = $max_doi + 1; $dataset_id = 0; $dataset->attributes = $_SESSION['dataset']; $dataset->image->attributes = $_SESSION['images']; $dataset->identifier = $identifier; $dataset->dataset_size = 0; $dataset->ftp_site = ""; if ($dataset->publication_date == "") { $dataset->publication_date = null; } if ($dataset->modification_date == "") { $dataset->modification_date = null; } if ($dataset->image->validate('update') && $dataset->validate('update') && $dataset->image->save()) { // save image $dataset->image_id = $dataset->image->id; if ($dataset->save()) { $dataset_id = $dataset->id; // link datatypes if (isset($_SESSION['datasettypes'])) { $datasettypes = $_SESSION['datasettypes']; foreach ($datasettypes as $id => $datasettype) { $newDatasetTypeRelationship = new DatasetType(); $newDatasetTypeRelationship->dataset_id = $dataset->id; $newDatasetTypeRelationship->type_id = $id; $newDatasetTypeRelationship->save(); } } } } return array($dataset_id, $identifier); } }
public function actionCreate1() { $dataset = new Dataset(); $image = new Images(); // set default types $dataset->types = array(); if (isset($_POST['Dataset']) && isset($_POST['Images'])) { $transaction = Yii::app()->db->beginTransaction(); try { #save dataset $dataset->submitter_id = Yii::app()->user->_id; $attrs = $_POST['Dataset']; $dataset->title = $attrs['title']; $dataset->description = $attrs['description']; $dataset->upload_status = "Incomplete"; $dataset->ftp_site = "''"; // save dataset types if (isset($_POST['datasettypes'])) { $dataset->types = $_POST['datasettypes']; } $lastDataset = Dataset::model()->find(array('order' => 'identifier desc')); $lastIdentifier = intval($lastDataset->identifier); if (!is_int($lastIdentifier)) { $transaction->rollback(); $this->redirect('/'); } $dataset->identifier = $lastIdentifier + 1; if ($_POST['Dataset']['union'] == 'B') { $dataset->dataset_size = $_POST['Dataset']['dataset_size']; } else { if ($_POST['Dataset']['union'] == 'M') { $dataset->dataset_size = $_POST['Dataset']['dataset_size'] * 1024 * 1024; } else { if ($_POST['Dataset']['union'] == 'G') { $dataset->dataset_size = $_POST['Dataset']['dataset_size'] * 1024 * 1024 * 1024; } else { if ($_POST['Dataset']['union'] == 'T') { $dataset->dataset_size = $_POST['Dataset']['dataset_size'] * 1024 * 1024 * 1024 * 1024; } } } } #save image if (!$_POST['Images']['is_no_image']) { $uploadedFile = CUploadedFile::getInstance($image, 'image_upload'); $fileName = "{$uploadedFile}"; $path = Yii::getPathOfAlias('webroot') . "/images/uploads/" . $fileName; $image->image_upload = $uploadedFile; $image->url = $path; $image->location = $fileName; $image->tag = $_POST['Images']['tag']; $image->license = $_POST['Images']['license']; $image->photographer = $_POST['Images']['photographer']; $image->source = $_POST['Images']['source']; } else { $image->url = "http://gigadb.org/images/data/cropped/no_image.png"; $image->location = "no_image.jpg"; $image->tag = "no image icon"; $image->license = "Public domain"; $image->photographer = "GigaDB"; $image->source = "GigaDB"; } if ($dataset->save() && $image->save()) { $dataset->image_id = $image->id; $dataset->save(false); if (isset($_POST['datasettypes'])) { $types = DatasetType::storeDatasetTypes($dataset->id, $_POST['datasettypes']); if (!$types) { $transaction->rollback(); $this->redirect('/'); } } $transaction->commit(); $this->redirect(array('/dataset/authorManagement', 'id' => $dataset->id)); } } catch (Exception $e) { $message = $e->getMessage(); Yii::log(print_r($message, true), 'error'); $transaction->rollback(); $this->redirect('/'); } } $this->render('create1', array('model' => $dataset, 'image' => $image)); }