Rhythmyx 6.1 question: -
I have a problem on my published site where the navigation elements are creating links to landing pages which are not public. It seems that when the item filter being applied is “public” then it filters out non-public navons, but it does not filter based on the state of the landing page. The result is broken links on the site.
I guess I need to change my nav templates so that they test the state of the landing page, and depending on the current filter (preview / publish) it will determine whether to create a link or not. I can get a handle to the landing page from the template, but I’m not sure what property to look at to determine the type of state the content item is in (public, ignore, archive etc.) Or is there an altogether easier way of doing this?
I think we’d also want to change the sys_UnpublishMandatory relationship effect to “force transition= yes” so that if the landing page expires it forces the navon to expire as well, if my understanding is correct.
I presume if I change the relationship type in the slot it’ll only affect new landing page relationships so I’ll have to go and update the existing relationships to the new type. Is it stored in PSX_OBJECTRELATIONSHIP.CONFIG_ID? That seems to tie in with the Id’s of the system relationship Types.
You’re on the right track. You may wish to create a new “Custom Relationship” in the AA category and configure it the way you need rather than using the default AA Mandatory relationship.
You’re also correct that changing the relationship in the slot definition only affects new relationships, not existing ones. You’ll need to change the existing ones programmatically (or else remove and re-add the landing pages if the site is small enough).
Thanks for your help. I created the custom relationship as described and it correctly prevents navons going public if their landing page is not public. It will also force a landing page to expire if the navon is unpublished.
The problems at the moment are: -
If the landing page is not set, then the navon can still be pushed public.
If the landing page expires, the navon remains public
In the first case the navigation node “nav:url” property is set to “#”, so I can easily filter this out in my Velocity code. In the second case the “nav:url” property is set to the old url, so if unpublishing has occurred, the link will be dead.
I am confused as to why Rhythmyx is setting the “nav:url” property to a url when the landing page is not public. From what I have read about the assembly process the parameters should be passed through to every item assembled. Rhythmyx should therefore pass the “sys_filter=public” parameter through to the landing page slot. The “public” filter should then be applied to the landing page slot and remove any non-public items. Rhythmyx would then act in the same way as if there were no landing page defined, i.e. set the “nav:url” property to “#”. This does not seem to be happening. Any ideas?