Forums / Developer / Dynamic Data Map Access fails

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Dynamic Data Map Access fails

Author Message

Wenzel Wondra

Monday 06 April 2009 6:52:50 am

Hello,

I have some integer datatypes in my object. They are all named something like "contingent_cat_1", "contingent_cat_2", and so on.

On my test server (PHP 5.2.4-2ubuntu5.5) I can access the values using

{foreach $foo as $bar}
....
{set $idx = inc( $idx )}
{set $contingentCat = concat( 'contingent_cat_', $idx )}
{if gt( $node.object.data_map.$contingentCat.data_int, 0 )}
... 
{/if}
{/foreach}

On the production server (PHP 5.2.0-8+etch13), the same code fails with an
Error: eZTemplate:eZTemplateCompiler
"PHP variable $if_cond1['Array'] does not exist, cannot fetch the value."

Edit:
Also the other syntax $node.object.data_map[$dynamicField].data_int doesn't work...

Any Ideas?

Thanks in advance!
wewo

Edit: Forgot to mention: It's EZP 4.1

Wenzel Wondra

Tuesday 07 April 2009 9:51:06 am

When I use:
$node.data_map.$contingentCat.data_int
instead of
$node.content.data_map.$contingentCat.data_int

Everything works fine on both servers :)

regards,
wewo