From 0f237b0c5706275f33aae8342f9ec3730b85ab39 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Tue, 19 May 2009 02:44:58 +0000 Subject: [PATCH] Merged from branches/2.3 git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@77141 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/ComplexTableField.php | 48 +++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/forms/ComplexTableField.php b/forms/ComplexTableField.php index 263f1f990..28b2aaa89 100755 --- a/forms/ComplexTableField.php +++ b/forms/ComplexTableField.php @@ -478,29 +478,31 @@ JS; function getFieldsFor($childData) { // See if our parent class has any many_many relations by this source class - if($this->sourceID()) { - $parentClass = DataObject::get_by_id($this->getParentClass(), $this->sourceID()); - } else { - $parentClass = singleton($this->getParentClass()); - } - - $manyManyRelations = $parentClass->many_many(); - $manyManyRelationName = null; - $manyManyComponentSet = null; - - $hasManyRelations = $parentClass->has_many(); - $hasManyRelationName = null; - $hasManyComponentSet = null; - - if($manyManyRelations) foreach($manyManyRelations as $relation => $class) { - if($class == $this->sourceClass()) { - $manyManyRelationName = $relation; + if($this->getParentClass()) { + if($this->sourceID()) { + $parentClass = DataObject::get_by_id($this->getParentClass(), $this->sourceID()); + } else { + $parentClass = singleton($this->getParentClass()); } - } - - if($hasManyRelations) foreach($hasManyRelations as $relation => $class) { - if($class == $this->sourceClass()) { - $hasManyRelationName = $relation; + + $manyManyRelations = $parentClass->many_many(); + $manyManyRelationName = null; + $manyManyComponentSet = null; + + $hasManyRelations = $parentClass->has_many(); + $hasManyRelationName = null; + $hasManyComponentSet = null; + + if($manyManyRelations) foreach($manyManyRelations as $relation => $class) { + if($class == $this->sourceClass()) { + $manyManyRelationName = $relation; + } + } + + if($hasManyRelations) foreach($hasManyRelations as $relation => $class) { + if($class == $this->sourceClass()) { + $hasManyRelationName = $relation; + } } } @@ -513,7 +515,7 @@ JS; $detailFields = $this->getCustomFieldsFor($childData); - if($hasManyRelationName && $childData->ID) { + if($this->getParentClass() && $hasManyRelationName && $childData->ID) { $hasManyComponentSet = $parentClass->getComponents($hasManyRelationName); }