Upgrading ISiteCustomNavigationPlugin and ICustomNavigationItem to UI.Version3

I am in the process of upgrading our community from v10.3 to 12.1. 

We have several plugins that implement ISiteCustomNavigationPlugin and ICustomNavigationItem.

I see the notice that ICustomNavigationItem is obsolete, but I'm not sure how to migrate the customizations into CustomNavigationItem

Specifically, we have a lot of logic in the Get/Set of the Url property.

Are there any examples of how to implement Version3 of ISiteCustomNavigationPlugin?

  • Adding to the above, I see that the velocity script version of CustomNavigationItem has a "children" property.  The Extensibility.UI.Version3 version of CustomNavigationItem does not.  Is there no way to add child navigation elements now?  (just looking to go a single layer deep). 
    e.g. 

  • One of the significant changes from V1/2 to V3 of custom navigation items is that V3 is more clear that the item will be heavily cached and should not vary on value presentation other than for the translation of the item. Each returned item is shared among all users accessing the custom navigation data within the provided context (site, specific group, specific user).

    The configured navigation item should always represent a consistent Avatar/Url/CssClass but can have a translatable label/description and can programmatically determine visibility/selection state.

  • Children are defined via end-user configuration and usage of individual custom navigation plugins. The plugins themselves were never intended to populate their own children -- they would be populated or replaced by the platform based on the custom navigation configuration of the end-user.

  • If I understand what you're saying, the only way to accomplish this is via manually configuring the site navigation via the UI.  Correct?

    Can I put in a feature request to add this capability back? It was very useful.  We have a list of services that don't change frequently, but do change.  Being able to pull that list in from the a central location and build (and cache) the navigation to each on the fly was very useful.

  • You can definitely file a feature request, however, this would (as it has) conflict with the purpose/design of custom navigation items where end-users define what the hierarchy is. It may be better to implement the hard-coded portion of the navigation via a customization of the navigation widget and not as a custom navigation item with hard-coded children.

  •  I guess I don't have a choice but to mark the above as the verified answer.  However, given that this is a capability that I've had in my customization of Telligent Community / Verint Community since version 5.x, I feel like it absolutely was in harmony with the purpose of the custom navigation, at least at one point.  If my end users didn't want a list of Services then they didn't have to include that element in the navigation. I really like a lot of the other changes that the team is making, but I'll miss this one.