From 49d54c0c3199fb8e380ce68f8fb08a308ddf56a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Eduardo?= Date: Mon, 25 Dec 2017 16:58:41 -0500 Subject: =?UTF-8?q?migraci=C3=B3n=20mayor=20a=20smarty=20PHP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../smarty_internal_compile_continue.php | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 smarty/sysplugins/smarty_internal_compile_continue.php (limited to 'smarty/sysplugins/smarty_internal_compile_continue.php') diff --git a/smarty/sysplugins/smarty_internal_compile_continue.php b/smarty/sysplugins/smarty_internal_compile_continue.php new file mode 100644 index 0000000..ac41f41 --- /dev/null +++ b/smarty/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