diff options
author | friendica <info@friendica.com> | 2012-07-03 22:23:08 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-07-03 22:23:08 -0700 |
commit | fd626022ec02ef47b9142bba08180502babbd0ca (patch) | |
tree | ffc77e4e9cafdc6e20217f3970de982cabcbd838 /library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php | |
parent | 13b4962531ca3c4f085b385a2c6b8f088abb7d6a (diff) | |
download | volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.gz volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.bz2 volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.zip |
add smarty engine, remove some obsolete zot1 stuff
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php new file mode 100644 index 000000000..9a5071ebe --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php @@ -0,0 +1,98 @@ +<?php +/** + * Smarty Internal Plugin Compile Capture + * + * Compiles the {capture} tag + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ + +/** + * Smarty Internal Plugin Compile Capture Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase { + + /** + * Attribute definition: Overwrites base class. + * + * @var array + * @see Smarty_Internal_CompileBase + */ + public $shorttag_order = array('name'); + /** + * Attribute definition: Overwrites base class. + * + * @var array + * @see Smarty_Internal_CompileBase + */ + public $optional_attributes = array('name', 'assign', 'append'); + + /** + * 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) + { + // check and get attributes + $_attr = $this->getAttributes($compiler, $args); + + $buffer = isset($_attr['name']) ? $_attr['name'] : "'default'"; + $assign = isset($_attr['assign']) ? $_attr['assign'] : 'null'; + $append = isset($_attr['append']) ? $_attr['append'] : 'null'; + + $compiler->_capture_stack[0][] = array($buffer, $assign, $append, $compiler->nocache); + // maybe nocache because of nocache variables + $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; + $_output = "<?php \$_smarty_tpl->_capture_stack[0][] = array($buffer, $assign, $append); ob_start(); ?>"; + + return $_output; + } + +} + +/** + * Smarty Internal Plugin Compile Captureclose Class + * + * @package Smarty + * @subpackage Compiler + */ +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) + { + // check and get attributes + $_attr = $this->getAttributes($compiler, $args); + // must endblock be nocache? + if ($compiler->nocache) { + $compiler->tag_nocache = true; + } + + list($buffer, $assign, $append, $compiler->nocache) = array_pop($compiler->_capture_stack[0]); + + $_output = "<?php list(\$_capture_buffer, \$_capture_assign, \$_capture_append) = array_pop(\$_smarty_tpl->_capture_stack[0]);\n"; + $_output .= "if (!empty(\$_capture_buffer)) {\n"; + $_output .= " if (isset(\$_capture_assign)) \$_smarty_tpl->assign(\$_capture_assign, ob_get_contents());\n"; + $_output .= " if (isset( \$_capture_append)) \$_smarty_tpl->append( \$_capture_append, ob_get_contents());\n"; + $_output .= " Smarty::\$_smarty_vars['capture'][\$_capture_buffer]=ob_get_clean();\n"; + $_output .= "} else \$_smarty_tpl->capture_error();?>"; + return $_output; + } + +} + +?>
\ No newline at end of file |