Craft\FormBuilder2_LayoutService::saveLayout PHP Method

saveLayout() public method

public saveLayout ( FormBuilder2_LayoutModel $layout )
$layout FormBuilder2_LayoutModel
    public function saveLayout(FormBuilder2_LayoutModel $layout)
    {
        if ($layout->id) {
            $layoutRecord = FormBuilder2_LayoutRecord::model()->findById($layout->id);
            if (!$layoutRecord) {
                throw new Exception(Craft::t('No layout exists with the ID “{id}”', array('id' => $layout->id)));
            }
            $oldLayout = FormBuilder2_LayoutModel::populateModel($layoutRecord);
            $isNewLayout = false;
        } else {
            $layoutRecord = new FormBuilder2_LayoutRecord();
            $isNewLayout = true;
        }
        $layoutRecord->name = $layout->name;
        $layoutRecord->handle = $layout->handle;
        $layoutRecord->description = $layout->description;
        $layoutRecord->icon = $layout->icon;
        $layoutRecord->templateName = $layout->templateName;
        $layoutRecord->templateOriginalName = $layout->templateOriginalName;
        $layoutRecord->templatePath = $layout->templatePath;
        $layoutRecord->validate();
        $layout->addErrors($layoutRecord->getErrors());
        if (!$layout->hasErrors()) {
            $transaction = craft()->db->getCurrentTransaction() ? false : craft()->db->beginTransaction();
            try {
                $layoutRecord->save(false);
                if (!$layout->id) {
                    $layout->id = $layoutRecord->id;
                }
                if ($transaction !== null) {
                    $transaction->commit();
                }
            } catch (\Exception $e) {
                if ($transaction !== null) {
                    $transaction->rollback();
                }
                throw $e;
            }
            return true;
        } else {
            return false;
        }
    }