本文整理汇总了PHP中eZTemplateCompiler::TemplatePrefix方法的典型用法代码示例。如果您正苦于以下问题:PHP eZTemplateCompiler::TemplatePrefix方法的具体用法?PHP eZTemplateCompiler::TemplatePrefix怎么用?PHP eZTemplateCompiler::TemplatePrefix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZTemplateCompiler
的用法示例。
在下文中一共展示了eZTemplateCompiler::TemplatePrefix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generateVariableDataCode
//.........这里部分代码省略.........
$php->addCodePiece($code, array('spacing' => $spacing));
$php->addVariableUnsetList($unsetList, array('spacing' => $spacing));
} else {
if ($variableDataType == eZTemplate::TYPE_INTERNAL_CODE_PIECE) {
$code = $variableDataItem[1];
$values = false;
$matchMap = array('%input%', '%output%');
$replaceMap = array('$' . $variableAssignmentName, '$' . $variableAssignmentName);
$unsetList = array();
$counter = 1;
if (isset($variableDataItem[3]) && is_array($variableDataItem[3])) {
$newParameters = $parameters;
$values = $variableDataItem[3];
foreach ($values as $value) {
$newParameters['counter'] += 1;
$newVariableAssignmentName = $newParameters['variable'];
$newVariableAssignmentCounter = $newParameters['counter'];
if ($newVariableAssignmentCounter > 0) {
$newVariableAssignmentName .= $newVariableAssignmentCounter;
}
if (eZTemplateNodeTool::isStaticElement($value)) {
$staticValue = eZTemplateNodeTool::elementStaticValue($value);
$staticValueText = $php->thisVariableText($staticValue, 0, 0, false);
if (preg_match("/%code{$counter}%/", $code)) {
$matchMap[] = '%code' . $counter . '%';
$replaceMap[] = '';
}
$matchMap[] = '%' . $counter . '%';
$replaceMap[] = $staticValueText;
} else {
$matchMap[] = '%' . $counter . '%';
$replaceMap[] = '$' . $newVariableAssignmentName;
$unsetList[] = $newVariableAssignmentName;
if (preg_match("/%code{$counter}%/", $code)) {
$tmpPHP = new eZPHPCreator('', '', eZTemplateCompiler::TemplatePrefix());
$tmpKnownTypes = array();
eZTemplateCompiler::generateVariableDataCode($tmpPHP, $tpl, $value, $tmpKnownTypes, $dataInspection, $persistence, $newParameters, $resourceData);
$newCode = $tmpPHP->fetch(false);
if (count($tmpKnownTypes) == 0 or in_array('objectproxy', $tmpKnownTypes)) {
$newCode .= "while " . ($resourceData['use-comments'] ? "/*TC:" . __LINE__ . "*/" : "") . "( is_object( \${$newVariableAssignmentName} ) and method_exists( \${$newVariableAssignmentName}, 'templateValue' ) )\n" . " \${$newVariableAssignmentName} = \${$newVariableAssignmentName}" . "->templateValue();\n";
}
$matchMap[] = '%code' . $counter . '%';
$replaceMap[] = $newCode;
} else {
$tmpKnownTypes = array();
eZTemplateCompiler::generateVariableDataCode($php, $tpl, $value, $tmpKnownTypes, $dataInspection, $persistence, $newParameters, $resourceData);
if (!$parameters['treat-value-as-non-object'] and (count($tmpKnownTypes) == 0 or in_array('objectproxy', $tmpKnownTypes))) {
$php->addCodePiece("while " . ($resourceData['use-comments'] ? "/*TC:" . __LINE__ . "*/" : "") . "( is_object( \${$newVariableAssignmentName} ) and method_exists( \${$newVariableAssignmentName}, 'templateValue' ) )\n" . " \${$newVariableAssignmentName} = \${$newVariableAssignmentName}" . "->templateValue();\n", array('spacing' => $spacing));
}
}
}
++$counter;
}
}
if (isset($variableDataItem[4]) && $variableDataItem[4] !== false) {
$values = $variableDataItem[4];
for ($i = 0; $i < $values; $i++) {
$newParameters['counter'] += 1;
$newVariableAssignmentName = $newParameters['variable'];
$newVariableAssignmentCounter = $newParameters['counter'];
if ($newVariableAssignmentCounter > 0) {
$newVariableAssignmentName .= $newVariableAssignmentCounter;
}
$matchMap[] = '%tmp' . ($i + 1) . '%';
$replaceMap[] = '$' . $newVariableAssignmentName;
$unsetList[] = $newVariableAssignmentName;
}
}
if (isset($variableDataItem[5]) and $variableDataItem[5]) {
if (is_array($variableDataItem[5])) {
$knownTypes = array_unique(array_merge($knownTypes, $variableDataItem[5]));
} else {
if (is_string($variableDataItem[5])) {
$knownTypes = array_unique(array_merge($knownTypes, array($variableDataItem[5])));
} else {
$knownTypes = array_unique(array_merge($knownTypes, array('static')));
}
}
}
$code = str_replace($matchMap, $replaceMap, $code);
$php->addCodePiece($code, array('spacing' => $spacing));
$php->addVariableUnsetList($unsetList, array('spacing' => $spacing));
}
}
}
}
}
}
}
}
}
}
}
}
}
}
// After the entire expression line is done we try to extract the actual value if proxies are used
$php->addCodePiece("if (! isset( \${$variableAssignmentName} ) ) \${$variableAssignmentName} = NULL;\n");
$php->addCodePiece("while " . ($resourceData['use-comments'] ? "/*TC:" . __LINE__ . "*/" : "") . "( is_object( \${$variableAssignmentName} ) and method_exists( \${$variableAssignmentName}, 'templateValue' ) )\n" . " \${$variableAssignmentName} = \${$variableAssignmentName}" . "->templateValue();\n");
}