The scenario is that you want to start using keywords to build a SeeAlso list. You start assigning appropriate keywords to various pages, and then you include the special construct <DIV class='ittriumRELATEDLINKS'> within a chunk of html. You expect to see the related links in the body of your html, replacing the DIV. And you do. But you also suddenly see a Related Links section appear in a different region of the page, which duplicates the info in the body of the html. Take away the DIV, and the Related Links section disappears. So you either get no display, or a duplicate display.
So what happened?
- You are using a theme that has a conditional RELATEDLINKS region defined within the .jsp
- Somewhere either within a theme.var or your custom .var file, you are using a VIEW definition to disable the RELATEDLINKS control
- Although the keyword relationship locates the related items, the disabled control produces no output.
- But VIEW definitions within a .var file only affect top-level controls rendered directly by the PrestationManaager.
- The DIV construct uses the RELATEDLINKS control, but it is not at the top level, so the .var VIEW definition is not applied
- That means the RELATEDLINKS control as built by the html processing does produce real output
- And the magic is that controls are cached, so when the html rendering builds and caches the RELATEDLINKS (having ignored the VIEW disable), the PresentationManager ends up using the cached copy of the control, which includes real data and is therefore visible.
What can be done?
- If you truely mean to disable all RELATEDLINKS processing, then override the RELATEDLINKS control construction via a theme level override.
- If you want to allow the DIV level trigger but keep a separate region in the .jsp, use a different name other than RELATEDLINKS in the .jsp
- Similarly, you can pick a different view via the DIV construct by using
<DIV class='ittriumRELATEDLINKS-MYSPECIALVIEWNAME'>