/** * Test deletion of DataObjects * - Deleting using delete() on the DataObject * - Deleting using DataObject::delete_by_id() */ function testDelete() { // Test deleting using delete() on the DataObject // Get the first page $page = $this->objFromFixture('Page', 'page1'); $pageID = $page->ID; // Check the page exists before deleting $this->assertTrue(is_object($page) && $page->exists()); // Delete the page $page->delete(); // Check that page does not exist after deleting $page = DataObject::get_by_id('Page', $pageID); $this->assertTrue(!$page || !$page->exists()); // Test deleting using DataObject::delete_by_id() // Get the second page $page2 = $this->objFromFixture('Page', 'page2'); $page2ID = $page2->ID; // Check the page exists before deleting $this->assertTrue(is_object($page2) && $page2->exists()); // Delete the page DataObject::delete_by_id('Page', $page2->ID); // Check that page does not exist after deleting $page2 = DataObject::get_by_id('Page', $page2ID); $this->assertTrue(!$page2 || !$page2->exists()); }
/** * Test deletion of DataObjects * - Deleting using delete() on the DataObject * - Deleting using DataObject::delete_by_id() */ public function testDelete() { // Test deleting using delete() on the DataObject // Get the first page $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $objID = $obj->ID; // Check the page exists before deleting $this->assertTrue(is_object($obj) && $obj->exists()); // Delete the page $obj->delete(); // Check that page does not exist after deleting $obj = DataObject::get_by_id('DataObjectTest_Player', $objID); $this->assertTrue(!$obj || !$obj->exists()); // Test deleting using DataObject::delete_by_id() // Get the second page $obj = $this->objFromFixture('DataObjectTest_Player', 'captain2'); $objID = $obj->ID; // Check the page exists before deleting $this->assertTrue(is_object($obj) && $obj->exists()); // Delete the page DataObject::delete_by_id('DataObjectTest_Player', $obj->ID); // Check that page does not exist after deleting $obj = DataObject::get_by_id('DataObjectTest_Player', $objID); $this->assertTrue(!$obj || !$obj->exists()); }
/** * Delete a number of items */ public function deleteitems() { $ids = split(' *, *', $_REQUEST['csvIDs']); $script = "st = \$('sitetree'); \n"; foreach($ids as $id) { if(is_numeric($id)) { $record = DataObject::get_by_id($this->stat('tree_class'), $id); if($record && !$record->canDelete()) return Security::permissionFailure($this); DataObject::delete_by_id($this->stat('tree_class'), $id); $script .= "node = st.getTreeNodeByIdx($id); if(node) node.parentTreeNode.removeTreeNode(node); $('Form_EditForm').closeIfSetTo($id); \n"; } } FormResponse::add($script); return FormResponse::respond(); }
function saveInto(DataObjectInterface $record) { $relation = $this->getRelation(); if ($relation) { $submittedTags = explode($this->getDelimiter(), $this->value); $tagClass = $this->getTagClass(); $tagLabelField = $this->getTagLabelField(); $tagObjects = DataList::create($tagClass)->filter($tagLabelField, $submittedTags); if ($tagObjects->Count() < count($submittedTags)) { // filter out the tags that exist already $tagsAsKeys = array_flip($submittedTags); foreach ($tagObjects as $tag) { $label = $tag->{$tagLabelField}; unset($tagsAsKeys[$label]); } foreach ($tagsAsKeys as $label => $value) { $tagObject = new $tagClass(); $tagObject->{$tagLabelField} = $label; $tagObject->write(); $tagObjects->add($tagObject); } } $relationList = $this->form->record->{$this->name}(); $oldTags = $relationList->map('ID', $tagLabelField)->toArray(); $relationList->removeAll(); $relationList->addMany($tagObjects->toArray()); if ($this->deleteUnusedTags) { $deletedTags = array_diff($oldTags, $tagObjects->map('ID', $tagLabelField)->toArray()); if (count($deletedTags) > 0) { $relationTable = $relation[4]; foreach ($deletedTags as $id => $title) { $query = new SQLQuery(); $query->select = array('ID', $tagLabelField); $query->from = array($relationTable); $query->where = array("ID = " . $id); $count = $query->Count(); if ($count == 0) { DataObject::delete_by_id($tagClass, $id); } } } } } else { if ($record->hasField($this->name)) { $record->setCastedField($this->name, $this->dataValue()); } else { // @TODO: better error handling } } }
/** * Delete a number of items */ public function deleteitems($request) { // Protect against CSRF on destructive action if (!SecurityToken::inst()->checkRequest($request)) { return $this->httpError(400); } $ids = split(' *, *', $_REQUEST['csvIDs']); $script = "st = \$('sitetree'); \n"; foreach ($ids as $id) { if (is_numeric($id)) { $record = DataObject::get_by_id($this->stat('tree_class'), $id); if ($record && !$record->canDelete()) { return Security::permissionFailure($this); } DataObject::delete_by_id($this->stat('tree_class'), $id); $script .= "node = st.getTreeNodeByIdx({$id}); if(node) node.parentTreeNode.removeTreeNode(node); \$('Form_EditForm').closeIfSetTo({$id}); \n"; } } FormResponse::add($script); return FormResponse::respond(); }
/** * Delete a number of items */ public function deleteitems() { $ids = split(' *, *', $_REQUEST['csvIDs']); $script = "st = \$('sitetree'); \n"; foreach ($ids as $id) { if (is_numeric($id)) { DataObject::delete_by_id($this->stat('tree_class'), $id); $script .= "node = st.getTreeNodeByIdx({$id}); if(node) node.parentTreeNode.removeTreeNode(node); \$('Form_EditForm').closeIfSetTo({$id}); \n"; } } FormResponse::add($script); return FormResponse::respond(); }
/** * @return bool */ public function siteBuilderDeleteItem() { if (Director::is_ajax()) { $id = (int) $this->getRequest()->getVars()['ItemID']; $container = DataObject::get_by_id('PageBuilderItem', $id); if ($container) { DataObject::delete_by_id('PageBuilderItem', $id); } } return true; }
protected function onAfterDelete() { /** * Delete all has_many relationships associated with this controller. */ $items = $this->Items(); foreach ($items as $key => $item) { DataObject::delete_by_id('PageBuilderItem', $item->ID); } parent::onAfterDelete(); }