Forums / Setup & design / Left menu best practise

Left menu best practise

Author Message

Sander van den Akker

Wednesday 30 December 2009 7:42:31 am

I am facing a design question regarding the left menu in a new project. In the website interface, as well as some of my previous projects, menu includes are located inside the pagelayout template. Whether it is shown, and when, is configured in menu.ini.

Wouldn't it be more flexible on object level (and also cleaner) to include menu templates inside the appropriate full templates, instead of working with many ini settings and the persistent_variable? Or will this cause cache or performance problems?

eZ Publish certified developer
http://auth.ez.no/certification/verify/392313

Nicolas Pastorino

Tuesday 26 January 2010 3:26:53 am

Hi Sander,

Having the left menu in the view template means the menu will be view-cached, on a per-node basis. This means that whenever you want to change the content of your menu (adding a menu entry for example), you will need to clear all nodes' view cache...which is not recommended :) Another con is that regenerating a node's view cache will take longer for it needs to compute the left menu on top of its own content.

Now that the persistent_variable exists and works fine, information passing between view templates and the pagelayout is actually pretty easy. This can allow for a highly contextual menu. In terms of performance optimization, cache-blocks can be used around the menu, using the appropriate keys and options to have it expire when it is required.

As to the use of menu.ini, it is no dogma. It is indeed shipped with eZ Publish, but its usage is, as most of the other solutions shipped (eZ Flow, eZ Webin), simply an example onhow to best use the features. You may decide to not use it, alleviating some ini configuration.

Hope it helps. Interested in knowing how you actually solved the issue (as your initial post dates a bit).
Cheers and thanks for triggering this discussion,

--
Nicolas Pastorino
Director Community - eZ
Member of the Community Project Board

eZ Publish Community on twitter: http://twitter.com/ezcommunity

t : http://twitter.com/jeanvoye
G+ : http://plus.tl/jeanvoye

eZ debug

Timing: Jan 29 2025 13:47:49
Script start
Timing: Jan 29 2025 13:47:49
Module start 'content'
Timing: Jan 29 2025 13:47:49
Module end 'content'
Timing: Jan 29 2025 13:47:49
Script end

Main resources:

Total runtime0.1812 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0058 587.9219180.8438
Module start 'content' 0.00580.0045 768.765694.0391
Module end 'content' 0.01040.1708 862.8047522.1250
Script end 0.1812  1,384.9297 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00361.9902200.0002
Check MTime0.00150.8247200.0001
Mysql Total
Database connection0.00100.530910.0010
Mysqli_queries0.139376.85401410.0010
Looping result0.00110.61341390.0000
Template Total0.170594.110.1705
Template load0.00080.416210.0008
Template processing0.169793.671610.1697
Override
Cache load0.00050.300210.0005
Sytem overhead
Fetch class attribute can translate value0.00110.618510.0011
XML
Image XML parsing0.00030.155110.0003
General
dbfile0.00502.7549200.0002
String conversion0.00000.003930.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs