protected function saveCampaignInfo(SproutEmail_CampaignModel &$campaign) { $oldCampaignMailer = null; if (isset($campaign->id) && is_numeric($campaign->id)) { $campaignRecord = SproutEmail_CampaignRecord::model()->findById($campaign->id); if (!$campaignRecord) { throw new Exception(Craft::t('No campaign exists with the ID “{id}”', array('id' => $campaign->id))); } $oldCampaignMailer = $campaignRecord->mailer; } else { $campaignRecord = new SproutEmail_CampaignRecord(); } // Set common attributes $campaignRecord->fieldLayoutId = $campaign->fieldLayoutId; $campaignRecord->name = $campaign->name; $campaignRecord->handle = $campaign->handle; $campaignRecord->type = $campaign->type; $campaignRecord->titleFormat = $campaign->titleFormat; $campaignRecord->hasUrls = $campaign->hasUrls; $campaignRecord->hasAdvancedTitles = $campaign->hasAdvancedTitles; $campaignRecord->mailer = $campaign->mailer; $campaignRecord->urlFormat = $campaign->urlFormat; $campaignRecord->template = $campaign->template; $campaignRecord->templateCopyPaste = $campaign->templateCopyPaste; $campaignRecord->validate(); $campaign->addErrors($campaignRecord->getErrors()); if (!$campaignRecord->hasErrors()) { $campaignRecord->save(false); } return $campaignRecord; }