diff options
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_break.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_break.php | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php deleted file mode 100644 index cbc73d36a..000000000 --- a/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Smarty Internal Plugin Compile Break - * Compiles the {break} tag - * - * @package Smarty - * @subpackage Compiler - * @author Uwe Tews - */ - -/** - * Smarty Internal Plugin Compile Break Class - * - * @package Smarty - * @subpackage Compiler - */ -class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase -{ - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $optional_attributes = array('levels'); - - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $shorttag_order = array('levels'); - - /** - * Compiles code for the {break} 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) - { - static $_is_loopy = array('for' => 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 break {$_levels} level(s)", null, true); - } - - return "<?php break {$_levels};?>"; - } -} |