Friday 17 April 2009 3:03:24 am
No, cause modules are executed before pagelayout. It is possible to pass variables from node/system/override templates to pagelayout by using $persistent_variable, a cache safe variable, where you can put anything but objects (as cache is serialized, and serialization doesn't support complex objects like nodes and content objects). Use in node/override template:
{set scope=global persistent_variable=hash('node_id_array', array( $node.node_id, $node.parent_node_id ))}
Read in pagelayout:
{def $extra_menu_node_id = first_set( $module_result.content_info.persistent_variable.node_id_array, 0)}
But, if you use eZ Publish 4.1+(with ezwebin or ezflow), then you can use custom functions for this so it works on system urls as well, use on node/override/system template:
{ezpagedata_set( 'node_id_array', array( $register.node_id, $register.parent_node_id ))}
Optionally: If you want to append something to an array in for instance included templates:
{ezpagedata_append( 'node_id_array', 555 )}
And in pagelayout you can get the variable with $pagedata.persistent_variable.node_id_array Good luck :)
eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom
|