From 58433d38ced3d255d2704271cc80a7f163cad910 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Fri, 30 Mar 2012 15:59:47 +1300 Subject: [PATCH] BUGFIX: Tidied up relObject() behaviour on DataLists to restore broken SearchContext functionality. --- model/DataList.php | 4 ++++ model/DataObject.php | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/model/DataList.php b/model/DataList.php index 931419c25..721cedd50 100644 --- a/model/DataList.php +++ b/model/DataList.php @@ -668,6 +668,10 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab return singleton($this->dataClass)->$relationName()->forForeignID($ids); } + function dbObject($fieldName) { + return singleton($this->dataClass)->dbObject($fieldName); + } + /** * Add a number of items to the component set. * diff --git a/model/DataObject.php b/model/DataObject.php index 4a5add52a..024a01e15 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -2404,7 +2404,12 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity // Traverse dot syntax $component = $this; foreach($parts as $relation) { - $component = $component->$relation(); + if($component instanceof SS_List) { + if(method_exists($component,$relation)) $component = $component->$relation(); + else $component = $component->relation($relation); + } else { + $component = $component->$relation(); + } } $object = $component->dbObject($fieldName); @@ -2436,7 +2441,12 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity // Traverse dot syntax $component = $this; foreach($parts as $relation) { - $component = $component->$relation(); + if($component instanceof SS_List) { + if(method_exists($component,$relation)) $component = $component->$relation(); + else $component = $component->relation($relation); + } else { + $component = $component->$relation(); + } } return $component->$fieldName;