Добавил ifset которая реагирует только на установленность.
This commit is contained in:
parent
dd95d4aeb0
commit
1e4513c26d
1 changed files with 10 additions and 9 deletions
13
klein.php
13
klein.php
|
|
@ -10,16 +10,17 @@ class Klein {
|
||||||
return ["/$body/",
|
return ["/$body/",
|
||||||
function ($x) use ($result) {
|
function ($x) use ($result) {
|
||||||
$code = "<?php " . preg_replace_callback("/#(\d+)(s?)/", function ($s) use($x) {
|
$code = "<?php " . preg_replace_callback("/#(\d+)(s?)/", function ($s) use($x) {
|
||||||
$pref = $s[2] == 's' ? '$' : '';
|
$pref = $s[2] == 's' ? '$' : '';
|
||||||
return implode(", ", array_map(function ($s) use($pref) {
|
return implode(", ", array_map(function ($s) use($pref) {
|
||||||
return $pref.preg_replace("/\.\s*(\w+)/", "['$1']", $s); }, preg_split("/\s*,\s*/", $x[$s[1]])));
|
return $pref.preg_replace("/\.\s*(\w+)/", "['$1']", $s); }, preg_split("/\s*,\s*/", $x[$s[1]])));
|
||||||
}, $result) . " ?>";
|
}, $result) . " ?>";
|
||||||
return ($x[0][2] == '!') ? "<!-- $code -->" : $code;
|
return ($x[0][2] == '!') ? "<!-- $code -->" : $code;
|
||||||
}];
|
}];
|
||||||
}, [
|
}, [
|
||||||
["{% for+:id+in+:var %}", "foreach(#2s as \$index => #1s): \$loop = Klein::loop(\$index, #2s);"],
|
["{% for+:id+in+:var %}", "foreach(#2s as \$index => #1s): \$loop = Klein::loop(\$index, #2s);"],
|
||||||
["{% for+:id , :id+in+:var %}", "foreach(#3s as #1s => #2s):"],
|
["{% for+:id , :id+in+:var %}", "foreach(#3s as #1s => #2s):"],
|
||||||
["{% endfor %}", "endforeach;"],
|
["{% endfor %}", "endforeach;"],
|
||||||
|
["{% ifset+:var %}", "if(isset(#1s)):"],
|
||||||
["{% if+:var %}", "if(isset(#1s) && #1s):"],
|
["{% if+:var %}", "if(isset(#1s) && #1s):"],
|
||||||
["{% unless+:var %}", "if(!(isset(#1s) && #1s)):"],
|
["{% unless+:var %}", "if(!(isset(#1s) && #1s)):"],
|
||||||
["{% else %}", "else:"],
|
["{% else %}", "else:"],
|
||||||
|
|
@ -42,9 +43,9 @@ class Klein {
|
||||||
static function loop($idx, &$array) {
|
static function loop($idx, &$array) {
|
||||||
$is_even = $idx % 2;
|
$is_even = $idx % 2;
|
||||||
return ['first' => $idx == 0
|
return ['first' => $idx == 0
|
||||||
, 'last' => $idx == count($array) - 1
|
, 'last' => $idx == count($array) - 1
|
||||||
, 'odd' => !$is_even
|
, 'odd' => !$is_even
|
||||||
, 'even' => $is_even];
|
, 'even' => $is_even];
|
||||||
}
|
}
|
||||||
|
|
||||||
function render($vars) {
|
function render($vars) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue