homepage and mini mobile systems
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Handlebars base template
|
||||
* contain some utility method to get context and helpers
|
||||
@@ -51,7 +52,6 @@ class Template
|
||||
$this->tree = $tree;
|
||||
$this->source = $source;
|
||||
array_push($this->stack, [0, $this->getTree(), false]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,48 +134,49 @@ class Template
|
||||
$current = $tree[$index];
|
||||
$index++;
|
||||
//if the section is exactly like waitFor
|
||||
if (is_string($stop)
|
||||
if (
|
||||
is_string($stop)
|
||||
&& $current[Tokenizer::TYPE] == Tokenizer::T_ESCAPED
|
||||
&& $current[Tokenizer::NAME] === $stop
|
||||
) {
|
||||
break;
|
||||
}
|
||||
switch ($current[Tokenizer::TYPE]) {
|
||||
case Tokenizer::T_SECTION :
|
||||
$newStack = isset($current[Tokenizer::NODES])
|
||||
? $current[Tokenizer::NODES] : [];
|
||||
array_push($this->stack, [0, $newStack, false]);
|
||||
$buffer .= $this->section($context, $current);
|
||||
array_pop($this->stack);
|
||||
break;
|
||||
case Tokenizer::T_INVERTED :
|
||||
$newStack = isset($current[Tokenizer::NODES]) ?
|
||||
$current[Tokenizer::NODES] : [];
|
||||
array_push($this->stack, [0, $newStack, false]);
|
||||
$buffer .= $this->inverted($context, $current);
|
||||
array_pop($this->stack);
|
||||
break;
|
||||
case Tokenizer::T_COMMENT :
|
||||
$buffer .= '';
|
||||
break;
|
||||
case Tokenizer::T_PARTIAL:
|
||||
case Tokenizer::T_PARTIAL_2:
|
||||
$buffer .= $this->partial($context, $current);
|
||||
break;
|
||||
case Tokenizer::T_UNESCAPED:
|
||||
case Tokenizer::T_UNESCAPED_2:
|
||||
$buffer .= $this->variables($context, $current, false);
|
||||
break;
|
||||
case Tokenizer::T_ESCAPED:
|
||||
$buffer .= $this->variables($context, $current, true);
|
||||
break;
|
||||
case Tokenizer::T_TEXT:
|
||||
$buffer .= $current[Tokenizer::VALUE];
|
||||
break;
|
||||
default:
|
||||
throw new RuntimeException(
|
||||
'Invalid node type : ' . json_encode($current)
|
||||
);
|
||||
case Tokenizer::T_SECTION:
|
||||
$newStack = isset($current[Tokenizer::NODES])
|
||||
? $current[Tokenizer::NODES] : [];
|
||||
array_push($this->stack, [0, $newStack, false]);
|
||||
$buffer .= $this->section($context, $current);
|
||||
array_pop($this->stack);
|
||||
break;
|
||||
case Tokenizer::T_INVERTED:
|
||||
$newStack = isset($current[Tokenizer::NODES]) ?
|
||||
$current[Tokenizer::NODES] : [];
|
||||
array_push($this->stack, [0, $newStack, false]);
|
||||
$buffer .= $this->inverted($context, $current);
|
||||
array_pop($this->stack);
|
||||
break;
|
||||
case Tokenizer::T_COMMENT:
|
||||
$buffer .= '';
|
||||
break;
|
||||
case Tokenizer::T_PARTIAL:
|
||||
case Tokenizer::T_PARTIAL_2:
|
||||
$buffer .= $this->partial($context, $current);
|
||||
break;
|
||||
case Tokenizer::T_UNESCAPED:
|
||||
case Tokenizer::T_UNESCAPED_2:
|
||||
$buffer .= $this->variables($context, $current, false);
|
||||
break;
|
||||
case Tokenizer::T_ESCAPED:
|
||||
$buffer .= $this->variables($context, $current, true);
|
||||
break;
|
||||
case Tokenizer::T_TEXT:
|
||||
$buffer .= $current[Tokenizer::VALUE];
|
||||
break;
|
||||
default:
|
||||
throw new RuntimeException(
|
||||
'Invalid node type : ' . json_encode($current)
|
||||
);
|
||||
}
|
||||
}
|
||||
if ($stop) {
|
||||
@@ -204,7 +205,8 @@ class Template
|
||||
$current = $tree[$index];
|
||||
$index++;
|
||||
//if the section is exactly like waitFor
|
||||
if (is_string($stop)
|
||||
if (
|
||||
is_string($stop)
|
||||
&& $current[Tokenizer::TYPE] == Tokenizer::T_ESCAPED
|
||||
&& $current[Tokenizer::NAME] === $stop
|
||||
) {
|
||||
@@ -369,11 +371,14 @@ class Template
|
||||
|
||||
if ($escaped) {
|
||||
$args = $this->handlebars->getEscapeArgs();
|
||||
|
||||
array_unshift($args, $value);
|
||||
$value = call_user_func_array(
|
||||
$this->handlebars->getEscape(),
|
||||
array_values($args)
|
||||
);
|
||||
if (is_array($args) && is_array($this->handlebars)) {
|
||||
$value = call_user_func_array(
|
||||
$this->handlebars->getEscape(),
|
||||
array_values($args)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
Reference in New Issue
Block a user