Menu results may
contain several results that represent the same piece of content.
Menu results are not
unique, Menu results may include multiple results representing the same piece
of content as the results can include content and content links.
For example, several
content links to the same content may appear in the results for a single menu.
It may be desirable to filter these duplicate results, to leave only one.
Following
configuration property used to define whether menus should allow duplicate
results. If the property is set to false, duplicates will be filtered from the
menu results prior to rendering.
The property can be
set either at a global level or a per-request level:
- To configure the global
setting (for all menus), set the following in
WCMConfigService.properties:
menu.allowDuplicateResults=false (true/false). - To override the global
setting, add a request parameter to the request that renders the
menu:
allowDuplicateResults=false (true/false).
NOTE:
- Limitation - Duplicate
results will only be filtered when the menu cache is active. If duplicate
results appear in menus even though the allowDuplicateResults property has
been set to false, increase the value of the menu.cache.max.items property
in WCMConfigService.properties to ensure the menu cached it being
utilized. - "menu.cache.max.items" setting is different from the "services/cache/iwk/menu" , I mean "services/cache/iwk/menu" max size by default 2000, but "menu.cache.max.items" determines how many items in each entry can hold.
Example Scenario
- Sitearea "S1-Parent" has following children i.e. content items (c1, c2, c3 ) and sub sitearea called "S1-child"
- Sitearea "S1-child" has following children i.e content links (c1-L, c2-L, c3-L) and content(c4)
- Have menu component(974b4472-c924-414e-9d98-1103f48e417c) to iterate based on the sitearea (checked the option to include all descents)
Sample URL: Menu
pointing to S1-Parent (checked the option to include all descendant's)
Result
C1, C2, C3, C1-L,
C2-L, C3-L, C4
URL: Menu pointing
to S1-Parent (checked the option to include all descendant's) but
allowduplicateresults is false
Result
C1, C2, C3, C4
URL: Menu pointing
to S1-Child (checked the option to include all descendant's)
Result
C1-L, C2-L, C3-L, C4
Disable
content links in Menu Components completely
To disable the
content links completely in the menu components , set the following
configuration i.e
menu.includeContentLinks=false in the WCMConfigService.properties.
URL: Menu pointing
to S1-Parent(checked the option to include all descendant's)
Result
C1,C2,C3,C4
URL: Menu pointing
to S1-Child(checked the option to include all descendant's)
Result
C4
Ref:
Hi, I'm having issue on wcm 8 after migration, having menu component shows dups .. not sure if I should add this on WCM wcmconfigservice, though ? any thoughts .. Thanks EB
ReplyDeleteAs mentioned in the article few things need to validate for the duplicate results
Delete1. do you have the "allowDuplicateResults" setting? is it global setting or per request setting?
2. check menu.cache.max.items in WCMConfig service, assume if it is 300 and if menu returns more than 300 items then menu doesn't filter the duplicates, in this case you have to increase menu.cache.max.items size.
Thanks Siva this helps .. I added the allow DuplicateResults on wcm configservice settings and it work fine .. btw, your blog is really helpful .. EB
ReplyDeleteHi Siva,
ReplyDeleteI have a question on Menu component and not sure the feasibility of it and below is my question
How to impose filtering over the results of wcm menu components with wcm pagination and not clientside pagination?
Recently published article on menu resuts pagination (not at cliend side) , please take look at below , it seems will be helpful for you http://blog.sivavaka.com/2015/04/wcm-menu-pagination-or-wcm-navigator.html
ReplyDeleteHi Siva,
ReplyDeleteI have a question regarding the content which uses the menu component rendering is not updating like images while moving publish content to draft stage.