Craft\FormBuilder2_TemplateService::saveTemplate PHP Method

saveTemplate() public method

public saveTemplate ( FormBuilder2_TemplateModel $template )
$template FormBuilder2_TemplateModel
    public function saveTemplate(FormBuilder2_TemplateModel $template)
    {
        if ($template->id) {
            $templateRecord = FormBuilder2_TemplateRecord::model()->findById($template->id);
            if (!$templateRecord) {
                throw new Exception(Craft::t('No template exists with the ID “{id}”', array('id' => $template->id)));
            }
            $oldTemplate = FormBuilder2_TemplateModel::populateModel($templateRecord);
            $isNewTemplate = false;
        } else {
            $templateRecord = new FormBuilder2_TemplateRecord();
            $isNewTemplate = true;
        }
        $templateRecord->name = $template->name;
        $templateRecord->handle = $template->handle;
        $templateRecord->bodyText = $template->bodyText;
        $templateRecord->footerText = $template->footerText;
        $templateRecord->templateContent = JsonHelper::encode($template->templateContent);
        $templateRecord->templateStyles = JsonHelper::encode($template->templateStyles);
        $templateRecord->templateSettings = JsonHelper::encode($template->templateSettings);
        $templateRecord->validate();
        $template->addErrors($templateRecord->getErrors());
        if (!$template->hasErrors()) {
            $transaction = craft()->db->getCurrentTransaction() ? false : craft()->db->beginTransaction();
            try {
                $templateRecord->save(false);
                if (!$template->id) {
                    $template->id = $templateRecord->id;
                }
                if ($transaction !== null) {
                    $transaction->commit();
                }
            } catch (\Exception $e) {
                if ($transaction !== null) {
                    $transaction->rollback();
                }
                throw $e;
            }
            return true;
        } else {
            return false;
        }
    }