public function save(Workflow_SubmissionModel $model) { $settings = craft()->workflow->getSettings(); $isNewSubmission = !$model->id; if ($model->id) { $record = Workflow_SubmissionRecord::model()->findById($model->id); } else { $record = new Workflow_SubmissionRecord(); } $record->setAttributes($model->getAttributes(), false); $record->validate(); $model->addErrors($record->getErrors()); if ($model->hasErrors()) { WorkflowPlugin::log(print_r($model->getAllErrors(), true), LogLevel::Error, true); return false; } // Fire an 'onBeforeSaveSubmission' event $event = new Event($this, array('submission' => $model)); $this->onBeforeSaveSubmission($event); // Allow event to cancel submission saving if (!$event->performAction) { return false; } if (!craft()->elements->saveElement($model)) { return false; } if ($isNewSubmission) { $record->id = $model->id; } $record->save(false); if ($isNewSubmission) { $model->id = $record->id; } // Fire an 'onSaveSubmission' event $this->onSaveSubmission(new Event($this, array('submission' => $model))); if ($isNewSubmission) { // Trigger notification to publisher if ($settings->publisherNotifications) { $this->_sendPublisherNotificationEmail($model); } } return true; }
public function populateElementModel($row) { return Workflow_SubmissionModel::populateModel($row); }