Re: [SMARTY] Problems with appending values to an array

From: Date: Wed, 19 Feb 2003 16:17:51 +0000
Subject: Re: [SMARTY] Problems with appending values to an array
References: 1 2  Groups: php.smarty.general 
Request: Send a blank email to php-smarty-general+get-7895@lists.php.net to get a copy of this message
On Wed, Feb 19, 2003 at 05:06:53PM +0100, Joscha Feth wrote: > > Von: messju mohr [mailto:messju@lammfellpuschen.de] > > you can only apppend one value at a time, i guess. > > and you cannot supply your own keys, i'm afraid. > > > > maybe we can extend append() to handle this. you have to build your > > array in php and assign it then to smarty for now. > > Thanks for your reply messju, too bad I didn't get a "you are such a fool, > see how easy it is" :-) > > > Greets, > Joscha > P.S.: Perhaps if we all shout "here", we get Monte to include it in the next > CVS :-D maybe: here is what i suggest: give the key as an optional third parameter. you still have to append your values each (with foreach), otherwise it wouldn't be compatible (there are people that want to append and array as a single value! :), but so it is possible to append with arbitrary keys. here is my diff (so i shout "here, me too!" :) Index: Smarty.class.php =================================================================== RCS file: /repository/smarty/Smarty.class.php,v retrieving revision 1.349 diff -r1.349 Smarty.class.php 604c604 < function append($tpl_var, $value = null) --- > function append($tpl_var, $value = null, $key=null) 607,610c607,610 < foreach ($tpl_var as $key => $val) { < if ($key != '') { < if(!@is_array($this->_tpl_vars[$key])) { < settype($this->_tpl_vars[$key],'array'); --- > foreach ($tpl_var as $name=>$val) { > if ($var_name != '') { > if(!@is_array($this->_tpl_vars[$name])) { > settype($this->_tpl_vars[$name],'array'); 612c612,615 < $this->_tpl_vars[$key][] = $val; --- > if (isset($key)) > $this->_tpl_vars[$name][$key] = $val; > else > $this->_tpl_vars[$name][] = $val; 620c623,626 < $this->_tpl_vars[$tpl_var][] = $value; --- > if (isset($key)) > $this->_tpl_vars[$tpl_var][$key] = $value; > else > $this->_tpl_vars[$tpl_var][] = $value; 631c637 < function append_by_ref($tpl_var, &$value) --- > function append_by_ref($tpl_var, &$value, $key=null) 637c643,646 < $this->_tpl_vars[$tpl_var][] = &$value; --- > if (isset($key)) > $this->_tpl_vars[$tpl_var][$key] = &$value; > else > $this->_tpl_vars[$tpl_var][] = &$value; HTH messju

« previous php.smarty.general (#7895) next »