From 51609351f2c4b5082b7e6f0744cd3811c325303f Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 11 Oct 2016 14:01:29 +0200 Subject: * initial template --- .../sysplugins/smarty_internal_compile_break.php | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/smarty/sysplugins/smarty_internal_compile_break.php (limited to 'lib/smarty/sysplugins/smarty_internal_compile_break.php') diff --git a/lib/smarty/sysplugins/smarty_internal_compile_break.php b/lib/smarty/sysplugins/smarty_internal_compile_break.php new file mode 100644 index 0000000..259c66e --- /dev/null +++ b/lib/smarty/sysplugins/smarty_internal_compile_break.php @@ -0,0 +1,77 @@ + true, 'foreach' => true, 'while' => true, 'section' => true); + // check and get attributes + $_attr = $this->getAttributes($compiler, $args); + + if ($_attr['nocache'] === true) { + $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno); + } + + if (isset($_attr['levels'])) { + if (!is_numeric($_attr['levels'])) { + $compiler->trigger_template_error('level attribute must be a numeric constant', $compiler->lex->taglineno); + } + $_levels = $_attr['levels']; + } else { + $_levels = 1; + } + $level_count = $_levels; + $stack_count = count($compiler->_tag_stack) - 1; + while ($level_count > 0 && $stack_count >= 0) { + if (isset($_is_loopy[$compiler->_tag_stack[$stack_count][0]])) { + $level_count--; + } + $stack_count--; + } + if ($level_count != 0) { + $compiler->trigger_template_error("cannot break {$_levels} level(s)", $compiler->lex->taglineno); + } + $compiler->has_code = true; + return ""; + } + +} + +?> \ No newline at end of file -- cgit v1.2.3