本文整理汇总了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);
}