Share » Forums » Setup & design » Possible to get a menu on system...

Possible to get a menu on system template pages this way?

Possible to get a menu on system template pages this way?

Saturday 07 July 2007 1:05:00 am - 7 replies

Author Message

Mark Emms

Monday 09 July 2007 6:09:03 am

I wonder if I've not made myself clear enough :-( ?

When I do a search or get an error page/ login etc the flat_left menu is empty - this is not good for the site I am making.

Instead of having to edit each of the system templates as described elsewhere (but not clearly enough for me I'm afraid) I want o modify the flat_menu.tpl file. I want it to check to see if a node_id has been set (or something similar) and if it hasn't I want it to set a value.

The aim is get a "default" menu that appears whenever I am getting an empty menu at the moment.

Many thanks

Mark Emms

Monday 09 July 2007 8:43:51 am

Worked it out on my own once I had the time:

used

{if is_set($module_result.node_id)}

standard menu production code

{else}

pasted code from source outputted from the node giving the default menu I wanted - from <ul> through to </ul>

{/if}

Mark Emms

Monday 09 July 2007 8:53:31 am

Would like to be able to set values for:

$module_result.node_id

and

$module_result.path

and let the treemenu do its work really - not sure if that would work though and don't know what value to enter for $module_result.path.

André R.

Tuesday 10 July 2007 1:18:20 am

As you might know you can't set objects in the template language, but if you really want to you can use a template operator to do it.

Some code that might help:

$view_parameters =& $tpl->variable('view_parameters');
$page_offset = $view_parameters['offset'];
...
$tpl->setVariable('children', $children);

But it's a lot cleaner to override pagelayout.tpl and change the logic to suite your needs!

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

Mark Emms

Tuesday 10 July 2007 2:46:03 am

Thanks Andre

yes - I have used an override, I always do these days!

I'm afraid I didn't understand what you were trying to tell me with your code fragment - sorry. Please could you expand upon what you mean?

I have been reading the documentation about treemenu and module_result.

module_result.path is an array of hashes I believe.

In principle could I create an array of hashes like this:

{def $mypathinfo=array( 'text', 'Homepage', 'url', '/content/view/full/2','url_alias','home','node_id','2')}

and then feed that into the treemenu function as follows?

{let docs=treemenu( $mypathinfo,
                   is_set( $module_result.node_id )|choose( 2, $module_result.node_id ),
                   ezini( 'MenuContentSettings', 'LeftIdentifierList', 'menu.ini' ),
                   0, 5 )
                   depth=1
                   last_level=0}

André R.

Wednesday 11 July 2007 7:05:13 am

the code fragment was an example on how to read and write variables from an template from inside a template operator.

On your code example you can use hash

{def $my_hash = hash('name','my name', 'age', 89, 'sex', 'male')}

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

Mark Emms

Tuesday 17 July 2007 6:12:01 am

OK - thank you very much.

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu