Re: [SMARTY-DEV] Variable variables

From: Date: Wed, 05 Jun 2002 13:31:35 +0000
Subject: Re: [SMARTY-DEV] Variable variables
References: 1 2 3  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-112@lists.php.net to get a copy of this message
Hmmm, indeed :)))) I've tried it in an earlier release and got problems, but it works fine now. but how does smarty know what object to take? I now use {$object->$row.row} where $row.row is an attribute of $object. But what if $row is the attribute (hash?) of $object, and 'row' is an index of that hash, would it work too then? {($object->$row).row} ? Thanks for your time.. Martijn > If you mean using $object->$var, it's already possible with Smarty > 2.1.0. > > On Wed, 05 Jun 2002, Martijn van Zal wrote: > > Hello all... > > > > I wonder if there is a way of implementing variable variabes into smart; > > Sometimes I have an object, and I need a certain attribute from it. I need > > this to create forms automatically. I have an array with form elements > > (name, type) and I include the right template with the form for the right > > variable type. ie: a textfield, wysiwyg html editor, image upload box, > > selectbox > > > > So what I do is I run through the form elements array like this > > > > ============================ > > {foreach from=$pageVars item=row} > > <tr height=20> > > {if (isset($row.editTemplate))} > > {include file=$row.editTemplate row=$row} > > {/if} > > </tr> > > {foreachelse} > > ============================ > > > > And in the editTemplate I do something like this: > > > > ============================ > > <td>{$row.name|translate}</td> > > <td> > > {if (isset($row.readOnly) && $row.readOnly)} > > {$object|var:$row.name} > > {else} > > <input type="text" name="{$row.name}" value="{$object|var:$row.name}"> > > {/if} > > </td> > > ============================ > > > > The data to fill the form with comes from the '$object' object. What i want > > to do is: $object->$row.name but unfortunally smarty currently doesn't have > > this functionality. I solved this by using a modifier named 'var' which gets > > the right attribute from the object > > > > ============================ > > function smarty_modifier_var($object, $var) > > { > > if (is_object($object)) > > return $object->$var; > > return false; > > } > > ============================ > > > > This works fine, but I don't think this is the correct method, it's more > > like a hack to get what I want. I tried looking in the source code but it's > > too complicated for me. I don't have any Idea if anyone else has the same > > problems or if it is hard to change it in the compiler functions. > > > > ________________________________________ > > Martijn van Zal GFXartist Network > > Technical Manager > > > > mail: martijn@gfxartist.com > > icq: 8213621 > > > > > > -- > > Smarty Development Mailing List (http://smarty.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > -Andrei > http://www.gravitonic.com/ > * I don't have a solution but I admire the problem. * > > -- > Smarty Development Mailing List (http://smarty.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.smarty.dev (#112) next »