smarty_internal_compile_continue.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Smarty Internal Plugin Compile Continue
  4. * Compiles the {continue} tag
  5. *
  6. * @package Smarty
  7. * @subpackage Compiler
  8. * @author Uwe Tews
  9. */
  10. /**
  11. * Smarty Internal Plugin Compile Continue Class
  12. *
  13. * @package Smarty
  14. * @subpackage Compiler
  15. */
  16. class Smarty_Internal_Compile_Continue extends Smarty_Internal_Compile_Break
  17. {
  18. /**
  19. * Compiles code for the {continue} tag
  20. *
  21. * @param array $args array with attributes from parser
  22. * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
  23. * @param array $parameter array with compilation parameter
  24. *
  25. * @return string compiled code
  26. * @throws \SmartyCompilerException
  27. */
  28. public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
  29. {
  30. list($levels, $foreachLevels) = $this->checkLevels($args, $compiler, 'continue');
  31. $output = "<?php\n";
  32. if ($foreachLevels > 1) {
  33. /* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
  34. $foreachCompiler = $compiler->getTagCompiler('foreach');
  35. $output .= $foreachCompiler->compileRestore($foreachLevels - 1);
  36. }
  37. $output .= "continue {$levels};?>";
  38. return $output;
  39. }
  40. }