static function processStaticOptimizations($useComments, $php, $tpl, &$node, &$resourceData, &$newNode) { $nodeType = $node[0]; if ($nodeType == eZTemplate::NODE_ROOT) { $children = $node[1]; $newNode[0] = $nodeType; $newNode[1] = false; if ($children) { $newNode[1] = array(); foreach ($children as $child) { $newChild = array(); eZTemplateCompiler::processStaticOptimizations($useComments, $php, $tpl, $child, $resourceData, $newChild); $newNode[1][] = $newChild; } } } else { if ($nodeType == eZTemplate::NODE_TEXT) { $text = $node[2]; $placement = $node[3]; $newNode[0] = $nodeType; $newNode[1] = false; $newNode[2] = $text; $newNode[3] = $placement; } else { if ($nodeType == eZTemplate::NODE_VARIABLE) { $variableCustom = $node[1]; $variableData = $node[2]; $variablePlacement = $node[3]; $dataInspection = eZTemplateCompiler::inspectVariableData($tpl, $variableData, $variablePlacement, $resourceData); if (isset($dataInspection['new-data'])) { $variableData = $dataInspection['new-data']; } $newNode = $node; $newNode[1] = $variableCustom; $newNode[2] = $variableData; unset($dataInspection); } else { if ($nodeType == eZTemplate::NODE_FUNCTION) { $functionChildren = $node[1]; $functionName = $node[2]; $functionParameters = $node[3]; $functionPlacement = $node[4]; $newFunctionChildren = array(); if (is_array($functionChildren)) { foreach ($functionChildren as $functionChild) { $newChild = array(); eZTemplateCompiler::processStaticOptimizations($useComments, $php, $tpl, $functionChild, $resourceData, $newChild); $newFunctionChildren[] = $newChild; } $functionChildren = $newFunctionChildren; } $newFunctionParameters = array(); if ($functionParameters) { foreach ($functionParameters as $functionParameterName => $functionParameterData) { $dataInspection = eZTemplateCompiler::inspectVariableData($tpl, $functionParameterData, false, $resourceData); if (isset($dataInspection['new-data'])) { $functionParameterData = $dataInspection['new-data']; } $newFunctionParameters[$functionParameterName] = $functionParameterData; } $functionParameters = $newFunctionParameters; } $newNode[0] = $nodeType; $newNode[1] = $functionChildren; $newNode[2] = $functionName; $newNode[3] = $functionParameters; $newNode[4] = $functionPlacement; if (isset($node[5])) { $newNode[5] = $node[5]; } } else { $newNode = $node; } } } } }