diff --git a/vendor/refinerycms/core/app/views/shared/_menu.html.erb b/vendor/refinerycms/core/app/views/shared/_menu.html.erb index 5f4203569a..8e56675d1d 100644 --- a/vendor/refinerycms/core/app/views/shared/_menu.html.erb +++ b/vendor/refinerycms/core/app/views/shared/_menu.html.erb @@ -3,10 +3,12 @@ css ||= 'menu' hide_children = RefinerySetting.find_or_set(:menu_hide_children, false) unless defined?(hide_children) cache_key = [Refinery.base_cache_key] - cache_key << RefinerySetting.find_or_set(:refinery_menu_cache_action_suffix, "site_menu") + cache_key << (action_suffix ||= RefinerySetting.find_or_set(:refinery_menu_cache_action_suffix, "site_menu")) + cache_key << extra_suffix if defined?(extra_suffix) and extra_suffix.present? cache_key << request.path - cache(cache_key.join('_')) do - roots = @menu_pages.select { |m| m.parent_id == nil } # Select top menu items + cache(cache_key.compact.join('_')) do + # Select top menu items unless 'roots' is passed in. + roots ||= @menu_pages.select { |m| m.parent_id == nil } if roots.any? sibling_count = roots.size - 1 -%>