/** * Adds the records to the database and returns a new {@link DataList} * * @param GridField * @param SS_List * @return SS_List */ public function getManipulatedData(GridField $gridField, SS_List $dataList) { $state = $gridField->State->MockDataGenerator; $count = (string) $state->Count; if (!$count) { return $dataList; } $generator = new MockDataBuilder($gridField->getModelClass()); $ids = $generator->setCount($count)->setIncludeRelations($state->IncludeRelations)->setDownloadImages($state->DownloadImages === true)->generate(); foreach ($ids as $id) { $dataList->add($id); } return $dataList; }
/** * Handles the creation of mock children with {@link MockDataBuilder} * * @param array $data The data passed in from the form * @param CMSForm $form The Form object that was used * @return SSViewer */ public function doAddMockChildren($data, $form) { $parentPage = SiteTree::get()->byID((int) $data['ID']); if (!$parentPage) { return false; } $className = isset($data['PageType']) ? $data['PageType'] : "Page"; $builder = new MockDataBuilder($className); $builder->setCount((int) $data['Count'])->setIncludeRelations((bool) $data['IncludeRelations'])->setDownloadImages((bool) $data['DownloadImages'])->setParentField("ParentID")->setParentObj($parentPage); try { $ids = $builder->generate(); } catch (Exception $e) { $form->sessionMessage($e->getMessage(), "bad"); return $this->redirectBack(); } $this->response->addHeader('X-Status', _t('MockData.CREATESUCCESS', 'Created {count} mock children under {title}', array('count' => $data['Count'], 'title' => $parentPage->Title))); $this->redirect(Controller::join_links(singleton('CMSPagesController')->Link())); return $this->getResponseNegotiator()->respond($this->request); }