X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2Fsmarty%2Fsysplugins%2Fsmarty_internal_compile_assign.php;fp=WEB-INF%2Flib%2Fsmarty%2Fsysplugins%2Fsmarty_internal_compile_assign.php;h=8d8c643afceacbdb90fb78eba511e1338432f91d;hb=9a23a8c0a51b7ec38a96f525484134f3cb85dc7e;hp=0000000000000000000000000000000000000000;hpb=098a79f0819ebb89b7d48df4a6b154af4560f68e;p=timetracker.git diff --git a/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_assign.php b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_assign.php new file mode 100644 index 00000000..8d8c643a --- /dev/null +++ b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_assign.php @@ -0,0 +1,64 @@ +compiler = $compiler; + // the following must be assigned at runtime because it will be overwritten in Smarty_Internal_Compile_Append + $this->required_attributes = array('var', 'value'); + $this->shorttag_order = array('var', 'value'); + $this->optional_attributes = array('scope'); + $_nocache = 'null'; + $_scope = 'null'; + // check and get attributes + $_attr = $this->_get_attributes($args); + // nocache ? + if ($this->compiler->tag_nocache || $this->compiler->nocache) { + $_nocache = 'true'; + // create nocache var to make it know for further compiling + $compiler->template->tpl_vars[trim($_attr['var'], "'")] = new Smarty_variable(null, true); + } + // scope setup + if (isset($_attr['scope'])) { + $_attr['scope'] = trim($_attr['scope'], "'\""); + if ($_attr['scope'] == 'parent') { + $_scope = Smarty::SCOPE_PARENT; + } elseif ($_attr['scope'] == 'root') { + $_scope = Smarty::SCOPE_ROOT; + } elseif ($_attr['scope'] == 'global') { + $_scope = Smarty::SCOPE_GLOBAL; + } else { + $this->compiler->trigger_template_error('illegal value for "scope" attribute', $this->compiler->lex->taglineno); + } + } + // compiled output + if (isset($parameter['smarty_internal_index'])) { + return "tpl_vars[$_attr[var]]) || !is_array(\$_smarty_tpl->tpl_vars[$_attr[var]]->value)) \$_smarty_tpl->createLocalArrayVariable($_attr[var], $_nocache, $_scope);\n\$_smarty_tpl->tpl_vars[$_attr[var]]->value$parameter[smarty_internal_index] = $_attr[value];?>"; + } else { + return "tpl_vars[$_attr[var]] = new Smarty_variable($_attr[value], $_nocache, $_scope);?>"; + } + } +} + +?> \ No newline at end of file