X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/098a79f0819ebb89b7d48df4a6b154af4560f68e..9a23a8c0a51b7ec38a96f525484134f3cb85dc7e:/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_capture.php diff --git a/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_capture.php b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_capture.php new file mode 100644 index 00000000..74ade680 --- /dev/null +++ b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_capture.php @@ -0,0 +1,81 @@ +compiler = $compiler; + // check and get attributes + $_attr = $this->_get_attributes($args); + + $buffer = isset($_attr['name']) ? $_attr['name'] : "'default'"; + $assign = isset($_attr['assign']) ? $_attr['assign'] : null; + $append = isset($_attr['append']) ? $_attr['append'] : null; + + $this->compiler->_capture_stack[] = array($buffer, $assign, $append, $this->compiler->nocache); + // maybe nocache because of nocache variables + $this->compiler->nocache = $this->compiler->nocache | $this->compiler->tag_nocache; + $_output = ""; + + return $_output; + } +} + +/** + * Smarty Internal Plugin Compile Captureclose Class + */ +class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase { + /** + * Compiles code for the {/capture} tag + * + * @param array $args array with attributes from parser + * @param object $compiler compiler object + * @return string compiled code + */ + public function compile($args, $compiler) + { + $this->compiler = $compiler; + // check and get attributes + $_attr = $this->_get_attributes($args); + // must endblock be nocache? + if ($this->compiler->nocache) { + $this->compiler->tag_nocache = true; + } + + list($buffer, $assign, $append, $this->compiler->nocache) = array_pop($this->compiler->_capture_stack); + + $_output = "assign($assign, ob_get_contents());"; + } + if (isset($append)) { + $_output .= " \$_smarty_tpl->append($append, ob_get_contents());"; + } + $_output .= " Smarty::\$_smarty_vars['capture'][$buffer]=ob_get_clean();?>"; + return $_output; + } +} + +?> \ No newline at end of file