public function saveSubmission(Formerly_SubmissionModel $submission)
{
$submissionRecord = new Formerly_SubmissionRecord();
$submissionRecord->formId = $submission->formId;
$submissionRecord->validate();
$submission->addErrors($submissionRecord->getErrors());
$this->onAfterValidate(new Event($this, array('submission' => $submission)));
if (!$submission->hasErrors()) {
//Check for honeypot
if (craft()->config->exists(Formerly_ConfigSettings::SettingsGroupName) && array_key_exists(Formerly_ConfigSettings::HoneyPotName, craft()->config->get(Formerly_ConfigSettings::SettingsGroupName))) {
$honeyPotName = craft()->config->get(Formerly_ConfigSettings::SettingsGroupName)[Formerly_ConfigSettings::HoneyPotName];
if (array_key_exists($honeyPotName, $_REQUEST) && $_REQUEST[$honeyPotName] != null) {
//ooh we have data in our honeypot!
//don't flag an error just return back
return false;
}
}
foreach ($_REQUEST['questions'] as $key => $value) {
if (strpos($key, 'email') > -1) {
$email = $value;
}
}
$transaction = craft()->db->getCurrentTransaction() === null ? craft()->db->beginTransaction() : null;
try {
if (craft()->elements->saveElement($submission)) {
$submissionRecord->id = $submission->id;
$submissionRecord->save(false);
if ($transaction !== null) {
$transaction->commit();
}
return true;
} else {
return false;
}
} catch (\Exception $ex) {
if ($transaction !== null) {
$transaction->rollback();
}
}
}
return false;
}