|
eZ Publish
[trunk]
|
The class eZTemplateMultiPassParser does. More...
Inheritance diagram for eZTemplateMultiPassParser:
Collaboration diagram for eZTemplateMultiPassParser:Public Member Functions | |
| appendChild (&$root, &$node) | |
| eZTemplateMultiPassParser () | |
| gotoEndPosition ($text, $line, $column, &$endLine, &$endColumn) | |
| parse ($tpl, $sourceText, &$rootElement, $rootNamespace, &$resourceData) | |
| parseBlockFunction ($funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseDefFunction ($funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseForeachFunction (&$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseForFunction (&$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseIntoTextElements ($tpl, $sourceText, $sourcePosition, $leftDelimiter, $rightDelimiter, $sourceLength, $relatedTemplateName) | |
| parseIntoTree ($tpl, &$textElements, &$treeRoot, $rootNamespace, $relatedResource, $relatedTemplateName) | |
| parseSectionFunction ($funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseSequenceParameter ($parseSequenceKeyword, $funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseSetFunction ($funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseUnnamedCondition ($funcName, &$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseWhileFunction (&$args, $tpl, &$text, &$text_len, &$cur_pos, $relatedTemplateName, $startLine, $startColumn, $rootNamespace) | |
| parseWhitespaceRemoval ($tpl, &$textElements) | |
| showParseErrorMessage ($tpl, &$text, $text_len, &$cur_pos, $tplName, $startLine, $startColumn, $funcName, $message) | |
Static Public Member Functions | |
| static | instance () |
| Returns a shared instance of the eZTemplateMultiPassParser class. | |
Public Attributes | |
| $ElementParser | |
The class eZTemplateMultiPassParser does.
Definition at line 17 of file eztemplatemultipassparser.php.
| eZTemplateMultiPassParser::appendChild | ( | &$ | root, |
| &$ | node | ||
| ) |
Definition at line 391 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::gotoEndPosition | ( | $ | text, |
| $ | line, | ||
| $ | column, | ||
| &$ | endLine, | ||
| &$ | endColumn | ||
| ) |
Definition at line 60 of file eztemplatemultipassparser.php.
Referenced by parseIntoTextElements(), parseIntoTree(), and showParseErrorMessage().
| static eZTemplateMultiPassParser::instance | ( | ) | [static] |
Returns a shared instance of the eZTemplateMultiPassParser class.
Definition at line 1363 of file eztemplatemultipassparser.php.
Referenced by eZTemplateMultiPassParser().
| eZTemplateMultiPassParser::parse | ( | $ | tpl, |
| $ | sourceText, | ||
| &$ | rootElement, | ||
| $ | rootNamespace, | ||
| &$ | resourceData | ||
| ) |
Parses the template file $sourceText. See the description of this class for more information on the parsing process.
Reimplemented from eZTemplateParser.
Definition at line 33 of file eztemplatemultipassparser.php.
| eZTemplateMultiPassParser::parseBlockFunction | ( | $ | funcName, |
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse arguments for {set-block}/{append-block}. This method has been created to correctly handle the case when ($) is used in variable name, e.g. {set-block variable=$var} Here we strip the dollar sign and pass the variable name as string.
Definition at line 1251 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseDefFunction | ( | $ | funcName, |
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse do..while function Syntax:
{do}
[{delimiter}...{/delimiter}]
[{break}]
[{continue}]
[{skip}]
{/do while <condition> [sequence <array> as $seqVar]}
*/
function parseDoFunction( &$args, $tpl, &$text, &$text_len, &$cur_pos,
$relatedTemplateName, $startLine, $startColumn, $rootNamespace )
{
// skip whitespaces
$cur_pos = $this->ElementParser->whitespaceEndPos( $tpl, $text, $cur_pos, $text_len );
// parse while keyword
$wordEndPos = $this->ElementParser->identifierEndPosition( $tpl, $text, $cur_pos, $text_len );
$word = substr( $text, $cur_pos, $wordEndPos-$cur_pos );
if ( $word != 'while' )
{
$this->showParseErrorMessage( $tpl, $text, $text_len, $cur_pos, $relatedTemplateName, $startLine, $startColumn,
'do', "Expected keyword 'while' not found in parameters" );
return;
}
$cur_pos = $wordEndPos;
// skip whitespaces
$cur_pos = $this->ElementParser->whitespaceEndPos( $tpl, $text, $cur_pos, $text_len );
$args['condition'] = $this->ElementParser->parseVariableTag( $tpl, $relatedTemplateName, $text, $cur_pos, $cur_pos, $text_len, $rootNamespace );
// skip whitespaces
$cur_pos = $this->ElementParser->whitespaceEndPos( $tpl, $text, $cur_pos, $text_len );
if ( $cur_pos == $text_len ) // no more arguments
return;
$this->parseSequenceParameter( true, 'do',
$args, $tpl, $text, $text_len, $cur_pos,
$relatedTemplateName, $startLine, $startColumn, $rootNamespace );
}
/*!
Parse def/undef functions
Syntax:
\code
{def $var1=<value1> [$var2=<value2> ...]}
{undef [$var1 [$var2] ...]}
Definition at line 1071 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseForeachFunction | ( | &$ | args, |
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse {foreach} function. Syntax:
{foreach <array> as [$keyVar =>] $itemVar
[sequence <array> as $sequenceVar]
[offset <offset>]
[max <max>]
[reverse]
}
Definition at line 931 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseForFunction | ( | &$ | args, |
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse {for} function. Syntax:
// for <firstValue> to <lastValue> as <$loopVar> [sequence <array> as <$var>]
Definition at line 861 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseIntoTextElements | ( | $ | tpl, |
| $ | sourceText, | ||
| $ | sourcePosition, | ||
| $ | leftDelimiter, | ||
| $ | rightDelimiter, | ||
| $ | sourceLength, | ||
| $ | relatedTemplateName | ||
| ) |
Definition at line 80 of file eztemplatemultipassparser.php.
Referenced by parse().
| eZTemplateMultiPassParser::parseIntoTree | ( | $ | tpl, |
| &$ | textElements, | ||
| &$ | treeRoot, | ||
| $ | rootNamespace, | ||
| $ | relatedResource, | ||
| $ | relatedTemplateName | ||
| ) |
Definition at line 398 of file eztemplatemultipassparser.php.
Referenced by parse().
| eZTemplateMultiPassParser::parseSectionFunction | ( | $ | funcName, |
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse arguments for {section}. This method has been created to correctly handle the case when ($) is used in variable name, e.g. {section var=$item} Here we strip the dollar sign and pass the variable name as string.
Definition at line 1301 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseSequenceParameter | ( | $ | parseSequenceKeyword, |
| $ | funcName, | ||
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
parse 'sequence' loop parameter: "sequence <array> as <$seqVar>"
Definition at line 799 of file eztemplatemultipassparser.php.
Referenced by parseForeachFunction(), parseForFunction(), and parseWhileFunction().
| eZTemplateMultiPassParser::parseSetFunction | ( | $ | funcName, |
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse arguments for {set}/{let}/{default}
Definition at line 1181 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseUnnamedCondition | ( | $ | funcName, |
| &$ | args, | ||
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse arguments for {if}/{elseif}
Definition at line 1137 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseWhileFunction | ( | &$ | args, |
| $ | tpl, | ||
| &$ | text, | ||
| &$ | text_len, | ||
| &$ | cur_pos, | ||
| $ | relatedTemplateName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | rootNamespace | ||
| ) |
Parse arguments for {while}
Definition at line 1154 of file eztemplatemultipassparser.php.
Referenced by parseIntoTree().
| eZTemplateMultiPassParser::parseWhitespaceRemoval | ( | $ | tpl, |
| &$ | textElements | ||
| ) |
Definition at line 309 of file eztemplatemultipassparser.php.
Referenced by parse().
| eZTemplateMultiPassParser::showParseErrorMessage | ( | $ | tpl, |
| &$ | text, | ||
| $ | text_len, | ||
| &$ | cur_pos, | ||
| $ | tplName, | ||
| $ | startLine, | ||
| $ | startColumn, | ||
| $ | funcName, | ||
| $ | message | ||
| ) |
Definition at line 1349 of file eztemplatemultipassparser.php.
Referenced by parseBlockFunction(), parseDefFunction(), parseForeachFunction(), parseForFunction(), parseSectionFunction(), parseSequenceParameter(), parseSetFunction(), parseUnnamedCondition(), and parseWhileFunction().
| eZTemplateMultiPassParser::$ElementParser |
Definition at line 1375 of file eztemplatemultipassparser.php.