mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Conflicts: src/Fenom/Template.php tests/cases/Fenom/TemplateTest.php
This commit is contained in:
@ -742,12 +742,12 @@ class Fenom {
|
||||
* @throws \RuntimeException if key from custom assoc doesn't exists into possible values
|
||||
*/
|
||||
private static function _makeMask(array $values, array $options, $mask = 0) {
|
||||
foreach($values as $value) {
|
||||
if(isset($options[$value])) {
|
||||
if($options[$value]) {
|
||||
$mask |= $options[$value];
|
||||
foreach ($values as $key=>$value) {
|
||||
if (isset($options[$key])) {
|
||||
if ($options[$key]) {
|
||||
$mask |= $options[$key];
|
||||
} else {
|
||||
$mask &= ~$options[$value];
|
||||
$mask &= ~$options[$key];
|
||||
}
|
||||
} else {
|
||||
throw new \RuntimeException("Undefined parameter $value");
|
||||
|
@ -615,7 +615,7 @@ class Compiler {
|
||||
} elseif(isset($params[ $param->getPosition() ])) {
|
||||
$args[] = $params[ $param->getPosition() ];
|
||||
} elseif($param->isOptional()) {
|
||||
$args[] = $param->getDefaultValue();
|
||||
$args[] = var_export($param->getDefaultValue(), true);
|
||||
}
|
||||
}
|
||||
return "$function(".implode(", ", $args).')';
|
||||
|
@ -62,7 +62,6 @@ class Template extends Render {
|
||||
* Escape outputs value
|
||||
* @var bool
|
||||
*/
|
||||
// public $escape = false;
|
||||
public $escape = false;
|
||||
public $_extends;
|
||||
public $_extended = false;
|
||||
@ -648,12 +647,12 @@ class Template extends Render {
|
||||
throw new TokenizeException("Unexpected token ".$tokens->getNext().", isset() and empty() accept only variables");
|
||||
}
|
||||
$term = true;
|
||||
} elseif(!$term && $tokens->is(Tokenizer::MACRO_UNARY)) { // like unary operator, see Tokenizer::MACRO_UNARY
|
||||
if(!$tokens->isNext(T_VARIABLE, T_DNUMBER, T_LNUMBER, T_STRING, T_ISSET, T_EMPTY)) {
|
||||
} elseif(!$term && $tokens->is(Tokenizer::MACRO_UNARY)) {
|
||||
if(!$tokens->isNext(T_VARIABLE, T_DNUMBER, T_LNUMBER, T_STRING, T_ISSET, T_EMPTY, '(')) {
|
||||
break;
|
||||
}
|
||||
$_exp[] = $tokens->getAndNext();
|
||||
$term = false;
|
||||
$term = 0;
|
||||
} elseif($tokens->is(Tokenizer::MACRO_BINARY)) { // like binary operator, see Tokenizer::MACRO_BINARY
|
||||
if(!$term) {
|
||||
throw new UnexpectedTokenException($tokens);
|
||||
@ -671,6 +670,8 @@ class Template extends Render {
|
||||
}
|
||||
$_exp[] = " ".$tokens->getAndNext()." ";
|
||||
$term = 0;
|
||||
} elseif($tokens->is('[')) {
|
||||
$_exp[] = $this->parseArray($tokens);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@ -1284,7 +1285,7 @@ class Template extends Render {
|
||||
}
|
||||
if($tokens->is("=")) {
|
||||
$tokens->next();
|
||||
$params[ $key ] = $this->parseExp($tokens);
|
||||
$params[ $key ] = $this->parseExp($tokens);
|
||||
} else {
|
||||
$params[ $key ] = 'true';
|
||||
}
|
||||
|
Reference in New Issue
Block a user