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;
 }