diff options
Diffstat (limited to 'vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php')
-rw-r--r-- | vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php new file mode 100644 index 000000000..7492c7df2 --- /dev/null +++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php @@ -0,0 +1,42 @@ +<?php +/** + * Smarty Internal Plugin Compile Continue + * Compiles the {continue} tag + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ + +/** + * Smarty Internal Plugin Compile Continue Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Compile_Continue extends Smarty_Internal_Compile_Break +{ + + /** + * Compiles code for the {continue} tag + * + * @param array $args array with attributes from parser + * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object + * @param array $parameter array with compilation parameter + * + * @return string compiled code + * @throws \SmartyCompilerException + */ + public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) + { + list($levels, $foreachLevels) = $this->checkLevels($args, $compiler, 'continue'); + $output = "<?php\n"; + if ($foreachLevels > 1) { + /* @var Smarty_Internal_Compile_Foreach $foreachCompiler */ + $foreachCompiler = $compiler->getTagCompiler('foreach'); + $output .= $foreachCompiler->compileRestore($foreachLevels - 1); + } + $output .= "continue {$levels};?>"; + return $output; + } +} |