mirror of
https://github.com/Mibew/handlebars.php.git
synced 2024-11-15 08:44:12 +03:00
Enable argument support in partials
Create own context if there are arguments and take values from context where partial was rendered in. Also allow strings with `=` inside arguments.
This commit is contained in:
parent
0a908fb6a1
commit
a4b6f9627a
@ -30,7 +30,7 @@ namespace Handlebars;
|
||||
*
|
||||
* @category Xamin
|
||||
* @package Handlebars
|
||||
* @author fzerorubigd <fzerorubigd@gmail.com>
|
||||
* @author fzerorubigd <fzerorubigd@gmail.com>, Pascal Thormeier <pascal.thormeier@gmail.com>
|
||||
* @copyright 2010-2012 (c) Justin Hileman
|
||||
* @copyright 2012 (c) ParsPooyesh Co
|
||||
* @license MIT <http://opensource.org/licenses/MIT>
|
||||
@ -502,7 +502,19 @@ class Template
|
||||
$partial = $this->handlebars->loadPartial($current[Tokenizer::NAME]);
|
||||
|
||||
if ($current[Tokenizer::ARGS]) {
|
||||
$context = $context->get($current[Tokenizer::ARGS]);
|
||||
preg_match_all(
|
||||
'/(\w+\=["|\'][^"\']+["|\']|\w+\=[a-zA-Z0-9\.\=]+)+/m',
|
||||
$current[Tokenizer::ARGS],
|
||||
$args
|
||||
);
|
||||
|
||||
$partialArgs = array();
|
||||
foreach ($args[0] as $arg) {
|
||||
list($key, $value) = explode('=', $arg, 2);
|
||||
$partialArgs[$key] = strpos($value, '"') === false ? $context->get($value) : trim('"', $value);
|
||||
}
|
||||
|
||||
$context = new Context($partialArgs);
|
||||
}
|
||||
|
||||
return $partial->render($context);
|
||||
|
Loading…
Reference in New Issue
Block a user