From 10c4224b6f9c3e515d5ce4fc82474b42b5c7523a Mon Sep 17 00:00:00 2001 From: aKorczak Date: Thu, 15 Mar 2012 17:44:34 +0000 Subject: [PATCH] [*] WS : Allow override of getter from different classes --- .../webservice/WebserviceOutputBuilder.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/classes/webservice/WebserviceOutputBuilder.php b/classes/webservice/WebserviceOutputBuilder.php index 0161888ba..ba1e00fa5 100755 --- a/classes/webservice/WebserviceOutputBuilder.php +++ b/classes/webservice/WebserviceOutputBuilder.php @@ -579,21 +579,25 @@ class WebserviceOutputBuilderCore 'entity_name' => $ws_params['objectNodeName'], 'entities_name' => $ws_params['objectsNodeName'], ); - - if (method_exists($object, $getter) && is_null($this->schemaToDisplay)) + + if (is_array($getter)) { - $association_resources = $object->$getter(); + $association_resources = call_user_func($getter, $object); if (is_array($association_resources) && !empty($association_resources)) - { foreach ($association_resources as $association_resource) - { $objects_assoc[] = $association_resource; - } - } } else { - $objects_assoc[] = ''; + if (method_exists($object, $getter) && is_null($this->schemaToDisplay)) + { + $association_resources = $object->$getter(); + if (is_array($association_resources) && !empty($association_resources)) + foreach ($association_resources as $association_resource) + $objects_assoc[] = $association_resource; + } + else + $objects_assoc[] = ''; } $class_name = null;