/** * If an object ID is set, add the object to the list * * @param GridField $gridField * @param SS_List $dataList * @return SS_List */ public function getManipulatedData(GridField $gridField, SS_List $dataList) { if (!$gridField->State->GridFieldAddRelation) { return $dataList; } $objectID = Convert::raw2sql($gridField->State->GridFieldAddRelation); if ($objectID) { $object = DataObject::get_by_id($dataList->dataclass(), $objectID); if ($object) { $virtual = new ElementVirtualLinked(); $virtual->LinkedElementID = $object->ID; $virtual->write(); $dataList->add($virtual); } } $gridField->State->GridFieldAddRelation = null; return $dataList; }
/** * If an object ID is set, add the object to the list * * @param GridField $gridField * @param SS_List $dataList * @return SS_List */ public function getManipulatedData(GridField $gridField, SS_List $dataList) { if (!$gridField->State->GridFieldAddRelation) { return $dataList; } $objectID = Convert::raw2sql($gridField->State->GridFieldAddRelation); if ($objectID) { $object = DataObject::get_by_id($dataList->dataclass(), $objectID); if ($object) { // if the object is currently not linked to either a page or another list then we want to link to // the original, otherwise link to a clone if (!$object->ParentID && !$object->ListID) { $dataList->add($object); } else { $virtual = new ElementVirtualLinked(); $virtual->LinkedElementID = $object->ID; $virtual->write(); $dataList->add($virtual); } } } $gridField->State->GridFieldAddRelation = null; return $dataList; }