本文整理匯總了PHP中eZTemplateCompiler::staticNodeData方法的典型用法代碼示例。如果您正苦於以下問題:PHP eZTemplateCompiler::staticNodeData方法的具體用法?PHP eZTemplateCompiler::staticNodeData怎麽用?PHP eZTemplateCompiler::staticNodeData使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類eZTemplateCompiler
的用法示例。
在下文中一共展示了eZTemplateCompiler::staticNodeData方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: combineStaticNodes
static function combineStaticNodes($tpl, &$resourceData, &$lastNode, &$newNode)
{
if ($lastNode == false or $newNode == false) {
return false;
}
$lastNodeType = $lastNode[0];
$newNodeType = $newNode[0];
if (!in_array($lastNodeType, array(eZTemplate::NODE_TEXT, eZTemplate::NODE_VARIABLE)) or !in_array($newNodeType, array(eZTemplate::NODE_TEXT, eZTemplate::NODE_VARIABLE))) {
return false;
}
if ($lastNodeType == eZTemplate::NODE_VARIABLE) {
if (is_array($lastNode[1])) {
return false;
}
$lastDataInspection = eZTemplateCompiler::inspectVariableData($tpl, $lastNode[2], $lastNode[3], $resourceData);
if (!$lastDataInspection['is-constant'] or $lastDataInspection['is-variable'] or $lastDataInspection['has-attributes'] or $lastDataInspection['has-operators']) {
return false;
}
if (isset($lastNode[4]) and isset($lastNode[4]['text-result']) and !$lastNode[4]['text-result']) {
return false;
}
}
if ($newNodeType == eZTemplate::NODE_VARIABLE) {
if (is_array($newNode[1])) {
return false;
}
$newDataInspection = eZTemplateCompiler::inspectVariableData($tpl, $newNode[2], $newNode[3], $resourceData);
if (!$newDataInspection['is-constant'] or $newDataInspection['is-variable'] or $newDataInspection['has-attributes'] or $newDataInspection['has-operators']) {
return false;
}
if (isset($newNode[4]) and isset($newNode[4]['text-result']) and !$newNode[4]['text-result']) {
return false;
}
if (isset($newNode[1]) and $newNode[1] !== false) {
return false;
}
}
$textElements = array();
$lastNodeData = eZTemplateCompiler::staticNodeData($lastNode);
$newNodeData = eZTemplateCompiler::staticNodeData($newNode);
$tpl->appendElementText($textElements, $lastNodeData, false, false);
$tpl->appendElementText($textElements, $newNodeData, false, false);
$newData = implode('', $textElements);
$newPlacement = $lastNode[3];
if (!is_array($newPlacement)) {
$newPlacement = $newNode[3];
} else {
$newPlacement[1][0] = $newNode[3][1][0];
// Line end
$newPlacement[1][1] = $newNode[3][1][1];
// Column end
$newPlacement[1][2] = $newNode[3][1][2];
// Position end
}
$lastNode = false;
$newNode = array(eZTemplate::NODE_TEXT, false, $newData, $newPlacement);
}