From 7085a0c2f7104a56a7e946c43ba0b5736be5f4e7 Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 27 Dec 2016 14:47:01 +0100 Subject: * smarty bundled --- .../smarty_internal_compile_continue.php | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/smarty3/sysplugins/smarty_internal_compile_continue.php (limited to 'lib/smarty3/sysplugins/smarty_internal_compile_continue.php') diff --git a/lib/smarty3/sysplugins/smarty_internal_compile_continue.php b/lib/smarty3/sysplugins/smarty_internal_compile_continue.php new file mode 100644 index 0000000..ac41f41 --- /dev/null +++ b/lib/smarty3/sysplugins/smarty_internal_compile_continue.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', null, true); + } + + if (isset($_attr[ 'levels' ])) { + if (!is_numeric($_attr[ 'levels' ])) { + $compiler->trigger_template_error('level attribute must be a numeric constant', null, true); + } + $_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 continue {$_levels} level(s)", null, true); + } + + return ""; + } +} -- cgit v1.2.3