function doCreate($data, $form, $request) { if (isset($data['TemplateID']) && $data['TemplateID']) { $template = DataObject::get_by_id('Subsite_Template', $data['TemplateID']); } else { $template = null; } // Create subsite from existing template switch ($data['Type']) { case 'template': if ($template) { $subsite = $template->duplicate(); } else { $subsite = new Subsite_Template(); $subsite->write(); } break; case 'subsite': default: if ($template) { $subsite = $template->createInstance($data['Title']); } else { $subsite = new Subsite(); $subsite->Title = $data['Title']; $subsite->write(); } break; } $form->dataFieldByName('Domains')->setExtraData(array("SubsiteID" => $subsite->ID)); $form->saveInto($subsite); $subsite->write(); if (Director::is_ajax()) { $recordController = new ModelAdmin_RecordController($this, $request, $subsite->ID); return new SS_HTTPResponse($recordController->EditForm()->forAjaxTemplate(), 200, sprintf(_t('ModelAdmin.LOADEDFOREDITING', "Loaded '%s' for editing."), $subsite->Title)); } else { Director::redirect(Controller::join_links($this->Link(), $subsitess->ID, 'edit')); } }
protected function createSubsiteWithDomains($domains) { $subsite = new Subsite(array('Title' => 'My Subsite')); $subsite->write(); foreach ($domains as $domainStr => $isPrimary) { $domain = new SubsiteDomain(array('Domain' => $domainStr, 'IsPrimary' => $isPrimary, 'SubsiteID' => $subsite->ID)); $domain->write(); } return $subsite; }