This commit is contained in:
bzick 2016-08-27 22:30:34 +03:00
parent 514b0b6769
commit cd4f688088
4 changed files with 108 additions and 3 deletions

View File

@ -5,11 +5,73 @@ require_once __DIR__.'/../tests/tools.php';
\Fenom::registerAutoload(); \Fenom::registerAutoload();
$vars = [
[
"id" => 1,
"name" => "Блаблабла",
"hidden_url" => "/"
],
[
"id" => 2,
"name" => "Каталог",
"hidden_url" => "/catalog"
],
[
"id" => 3,
"name" => "Сыромолочная группа",
"hidden_url" => "/catalog/cat_1.html"
],
[
"id" => 4,
"name" => "Сыры",
"hidden_url" => "/catalog/cat_2.html"
],
];
$fenom = Fenom::factory(__DIR__.'/templates', __DIR__.'/compiled'); $fenom = Fenom::factory(__DIR__.'/templates', __DIR__.'/compiled');
$fenom->setOptions(Fenom::AUTO_RELOAD | Fenom::FORCE_VERIFY); $fenom->setOptions(Fenom::AUTO_RELOAD | Fenom::FORCE_VERIFY);
//var_dump($fenom->compile("nested.tpl", [])->getTemplateCode()); //var_dump($fenom->compile("nested.tpl", [])->getTemplateCode());
//exit; //exit;
var_dump($fenom->fetch('bug247/home.tpl', [])); var_dump($fenom->fetch('bug249/bread.tpl', ["arr" => $vars]));
//var_dump($fenom->compile('bug249/bread.tpl', false)->getBody());
//var_dump($fenom->compile("bug158/main.tpl", [])->getTemplateCode()); //var_dump($fenom->compile("bug158/main.tpl", [])->getTemplateCode());
//var_dump($fenom->display("bug158/main.tpl", [])); //var_dump($fenom->display("bug158/main.tpl", []));
// $fenom->getTemplate("problem.tpl"); // $fenom->getTemplate("problem.tpl");
/*
*
* Array
(
[0] => Array
(
[id] => 1
[name] => Блаблабла
[hidden_url] => /
)
[1] => Array
(
[id] => 2
[name] => Каталог
[hidden_url] => /catalog/
)
[2] => Array
(
[orig_id] => 1
[hidden_url] => /catalog/cat_1.html
[name] => Сыромолочная группа
)
[3] => Array
(
[orig_id] => 2
[hidden_url] => /catalog/cat_2.html
[name] => Сыры
)
[4] => Array
(
[orig_id] => 6
[hidden_url] => /catalog/cat_6.html
[name] => Сыр плавленый
)
)
*/

View File

@ -0,0 +1,38 @@
{*<div class='bread'>*}
{*<ul>*}
{*<li><a href='/'>Главная</a><li>*}
{*{foreach 1..$arr|length as $counter index=$i first=$first last=$last}*}
{*{if !$first}*}
{*<li class='delim'>/</li>*}
{*<li>{$last}*}
{*{if !$last}*}
{*<a href='{$arr[$i]['hidden_url']}'>{else}<span>*}
{*{/if}*}
{*{$arr[$i]['name']}{if !$last}</a>{else}</span>{/if}</li>{/if}*}
{*{/foreach}*}
{*</ul>*}
{*</div>*}
=== {(1..3)|length} ===
{foreach 1..3 as $c index=$i first=$first last=$last}
{$i}: {$last}
{/foreach}
<div class='bread'>
<ul>
<li><a href='/'>Главная</a><li>
{foreach $arr as $item first=$first last=$last}
{if !$first}
<li class='delim'>/</li>
<li>{$last}
{if $last}
<span>{$item.name}</span>
{else}
<a href='{$item.hidden_url}'>{$item.name}</a>
{/if}
</li>
{/if}
{/foreach}
</ul>
</div>

View File

@ -90,7 +90,7 @@ class RangeIterator implements \Iterator, \Countable
*/ */
public function count() public function count()
{ {
return intval(($this->max - $this->min) / $this->step); return intval(($this->max - $this->min + 1) / $this->step);
} }
/** /**

View File

@ -1406,6 +1406,11 @@ class TemplateTest extends TestCase
$a, $a,
'Foreach: 0 => 1, 1 => 2, 2 => 3, end' 'Foreach: 0 => 1, 1 => 2, 2 => 3, end'
), ),
array(
'Foreach: {foreach 1..3 as $k => $e last=$l} {$k} => {$e}, {if $l}last{/if} {/foreach} end',
$a,
'Foreach: 0 => 1, 1 => 2, 2 => 3, last end'
),
array( array(
'Foreach: {foreach $.get.items as $e} {$e}, {/foreach} end', 'Foreach: {foreach $.get.items as $e} {$e}, {/foreach} end',
$a, $a,