Fixed an incorrect detection of the maximum recursion level

SVN:trunk[1079]
This commit is contained in:
Denis Flaven
2011-02-08 16:25:18 +00:00
parent eb0ba24d7d
commit 0b93e6f79e

View File

@@ -59,12 +59,10 @@ function AddNodeDetails(&$oNode, $oObj)
* @param DBObject $oObj The current object
* @param string $sRelation The name of the relation to search with
*/
function GetRelatedObjectsAsXml(DBObject $oObj, $sRelationName, &$oLinks, &$oXmlDoc, &$oXmlNode)
function GetRelatedObjectsAsXml(DBObject $oObj, $sRelationName, &$oLinks, &$oXmlDoc, &$oXmlNode, $iDepth = 0)
{
$aResults = array();
$oObj->GetRelatedObjects($sRelationName, 1 /* iMaxDepth */, $aResults);
static $iDepth = 0;
$iDepth++;
if ($iDepth > MAX_RECURSION_DEPTH) return;
foreach($aResults as $sRelatedClass => $aObjects)
@@ -85,7 +83,7 @@ function GetRelatedObjectsAsXml(DBObject $oObj, $sRelationName, &$oLinks, &$oXml
AddNodeDetails($oLinkedNode, $oTargetObj);
$oSubLinks = $oXmlDoc->CreateElement('links');
// Recurse
GetRelatedObjectsAsXml($oTargetObj, $sRelationName, $oSubLinks, $oXmlDoc, $oLinkedNode);
GetRelatedObjectsAsXml($oTargetObj, $sRelationName, $oSubLinks, $oXmlDoc, $oLinkedNode, $iDepth++);
$oLinkingNode->AppendChild($oLinkedNode);
$oLinks->AppendChild($oLinkingNode);
}
@@ -185,4 +183,4 @@ catch(Exception $e)
{
echo "Error: ".$e->getMessage();
}
?>
?>