static function processNodeCombiningChildren($useComments, $php, $tpl, &$nodeChildren, &$resourceData, &$parentNode) { $newNodeChildren = array(); $lastNode = false; foreach ($nodeChildren as $node) { $newNode = false; if (!isset($node[0])) { continue; } $nodeType = $node[0]; if ($nodeType == eZTemplate::NODE_ROOT) { $children = $node[1]; $newNode = array($nodeType, false); if ($children) { eZTemplateCompiler::processNodeCombiningChildren($useComments, $php, $tpl, $children, $resourceData, $newNode); } } else { if ($nodeType == eZTemplate::NODE_TEXT) { $text = $node[2]; $placement = $node[3]; $newNode = array($nodeType, false, $text, $placement); eZTemplateCompiler::combineStaticNodes($tpl, $resourceData, $lastNode, $newNode); } else { if ($nodeType == eZTemplate::NODE_VARIABLE) { $variableCustom = $node[1]; $variableData = $node[2]; $variablePlacement = $node[3]; $variableParameters = false; $dataInspection = eZTemplateCompiler::inspectVariableData($tpl, $variableData, $variablePlacement, $resourceData); $newNode = $node; $newNode[1] = $variableCustom; unset($dataInspection); eZTemplateCompiler::combineStaticNodes($tpl, $resourceData, $lastNode, $newNode); } else { if ($nodeType == eZTemplate::NODE_FUNCTION) { $functionChildren = $node[1]; $functionName = $node[2]; $functionParameters = $node[3]; $functionPlacement = $node[4]; $newNode = array($nodeType, false, $functionName, $functionParameters, $functionPlacement); if (isset($node[5])) { $newNode[5] = $node[5]; } if (is_array($functionChildren)) { eZTemplateCompiler::processNodeCombiningChildren($useComments, $php, $tpl, $functionChildren, $resourceData, $newNode); } } else { $newNode = $node; } } } } if ($lastNode != false) { $newNodeChildren[] = $lastNode; $lastNode = false; } if ($newNode != false) { $lastNode = $newNode; } } if ($lastNode != false) { $newNodeChildren[] = $lastNode; $lastNode = false; } $parentNode[1] = $newNodeChildren; }