Merge branch 'hotfix/0.2.1'
This commit is contained in:
+42
-3
@@ -424,7 +424,7 @@ class Mustache {
|
|||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function _renderPartial($tag_name, &$context) {
|
protected function _renderPartial($tag_name, &$context) {
|
||||||
$view = new self($this->_getPartial($tag_name), $context, $this->_partials);
|
$view = new self($this->_getPartial($tag_name), $this->_flattenContext($context), $this->_partials);
|
||||||
$view->_otag = $this->_otag;
|
$view->_otag = $this->_otag;
|
||||||
$view->_ctag = $this->_ctag;
|
$view->_ctag = $this->_ctag;
|
||||||
return $view->render();
|
return $view->render();
|
||||||
@@ -458,8 +458,8 @@ class Mustache {
|
|||||||
*
|
*
|
||||||
* @access protected
|
* @access protected
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @param mixed $local_context
|
* @param array $local_context
|
||||||
* @return void
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function _getContext(&$context, &$local_context) {
|
protected function _getContext(&$context, &$local_context) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
@@ -470,6 +470,45 @@ class Mustache {
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare a new (flattened) context.
|
||||||
|
*
|
||||||
|
* This is used to create a view object or array for rendering partials.
|
||||||
|
*
|
||||||
|
* @access protected
|
||||||
|
* @param array &$context
|
||||||
|
* @return array
|
||||||
|
* @throws MustacheException
|
||||||
|
*/
|
||||||
|
protected function _flattenContext(&$context) {
|
||||||
|
$keys = array_keys($context);
|
||||||
|
$first = $context[$keys[0]];
|
||||||
|
|
||||||
|
if ($first instanceof Mustache) {
|
||||||
|
$ret = clone $first;
|
||||||
|
unset($keys[0]);
|
||||||
|
|
||||||
|
foreach ($keys as $name) {
|
||||||
|
foreach ($context[$name] as $key => $val) {
|
||||||
|
$ret->$key =& $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (is_array($first)) {
|
||||||
|
$ret = array();
|
||||||
|
|
||||||
|
foreach ($keys as $name) {
|
||||||
|
foreach ($context[$name] as $key => $val) {
|
||||||
|
$ret[$key] =& $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new MustacheException('Unknown root context type.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a variable from the context array.
|
* Get a variable from the context array.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Partials extends Mustache {
|
||||||
|
public $name = 'ilmich';
|
||||||
|
public $data = array(
|
||||||
|
array('name' => 'federica', 'age' => 27, 'gender' => 'female'),
|
||||||
|
array('name' => 'marco', 'age' => 32, 'gender' => 'male'),
|
||||||
|
);
|
||||||
|
|
||||||
|
protected $_partials = array(
|
||||||
|
'children' => "{{#data}}{{name}} - {{age}} - {{gender}}\n{{/data}}",
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Children of {{name}}:
|
||||||
|
{{>children}}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Children of ilmich:
|
||||||
|
federica - 27 - female
|
||||||
|
marco - 32 - male
|
||||||
Reference in New Issue
Block a user