Using arrays as input to plugins

[email protected] ("Cody Caughlan") Wed, 26 Apr 2006 09:23:43 -0700
Newsgroups php.smarty.general
Message-ID <[email protected]>
Hello-

I have noticed some odd stuff going on with using associative arrays
and the "." syntax. When I am handing off data to a plugin, or any
other Smarty plugin (e.g. {include}), it doesnt handle using
associative arrays.

E.g.

$foobar = array('file' => 'foo.tpl');
$smarty->assign("foobar", $foobar);

---- foo.tpl ---

{include file=$foobar.file}

What happens is that it looks for a variable called "$foobar", doesnt
find it, so returns the empty string and then just appends
".file"...basically Smarty doesnt "dive into" the array, as it would
if I just did:

You are looking for {$foobar.file}

In my case I have written a plugin "dispText" and am trying to call it as such:

{dispText name="Name" value="$navItem.Name" label=$lblName
readOnly=$navItem.readOnly}

Where $navItem is an associative array I have previously assigned, and
those key names definitely exist. When my plugin executes it creates a
form input of type text and then in the value portion just display
".Name" because it cannot extract that value from the array $navItem
using the key as I have defined it.

So is there a way I can get it to read the array values WITHOUT doing
an {assign} first and pulling all of my values out. That would really
suck. I would think this is a core parser change and hence its not so
quick and easy.

Thanks
/Cody