Developer forum

Forum » Swift » Possible useful change to Navigation columns (Navigation and Vertical Navigation)

Possible useful change to Navigation columns (Navigation and Vertical Navigation)

Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi guys,

We have come across situations where we need to make adjustments to Navigation columns. This usually means customizing the templates.

The way it is set up now, if you want to maintain upgradability, you have to create custom columns and custom templates for navigation.

Instead of this approach, it would be useful to adjust the Navigation ItemTypes (Navigation and VerticalNavigation) to allow selection of the navigation template. This would help a lot with customizations.

Thank you,
Adrian


Replies

 
Nuno Aguiar Dynamicweb Employee
Nuno Aguiar
Reply

+1

 

Hi Adrian,

I am assuming some sort of Advanced setting field where you'd point to the template. Is that what you have in mind?

 

But that said, we developed a new Navigation item type that's a bit more flexible than the one that ships with Swift, but not as complex as teh Mega Menu (limited to 2 levels in fact). I don't expect it to replace the VerticalNavigation, but certainly the (regular) Navigation, where you can choose the 2nd level to either be vertical (aka dropdown) or horizontal (sort of mega menu, but only a single sublevel). I can show it to you if you want.

 

Best Regards,

Nuno Aguiar

 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Nuno,

Yes, something like that. I have not placed it in a separate group (for now):

For mega menus, it's never simple :)
We have tried various approaches in the past, the auto-generation of the mega-menu is never controllable enough. Therefore we ended up with a set of ItemTypes that allows you to create/customize the entire menu up to 3 levels. And you can choose the link type (Page, Group, external link etc) for every element in the submenu.

Not simple, but very customizable.

Adrian

 
Nuno Aguiar Dynamicweb Employee
Nuno Aguiar
Reply

Hi Adrian,

 

Yeah, that looks like a nice improvement (to be able to select the navigation template). It would definitely avoid creating so many custom item types, but certainly an "advanced" scenario, considering Swift is aiming to be handled by Content Editors with little to no knowledge of code.

 

As for Mega Menus, we've concluded to be better off creating a custom one. The current one is a bit cumbersome, and Mega Menu takes so many shapes and forms that we'd need 4 or 5 different ones just to accomodate common scenarios and make Swift more "flexible" for designers. Problem is maintaining multiple menus while still having so many awesome and important features that are needed; But I do relate to being a time consuming and undervalued task (by customers), which makes it a hard sell.

We were not as bold as you to go up to 3 levels and stopped at 2 with our highly configurable one, as we concluded the 3rd level was exponentially harder to understand, configure and maintain (even for the developers), so Kudos :)

 

Best Regards,

Nuno Aguiar

 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Nuno,

The solution above works well for simple situations where you have to mildly customize a simple menu which is usually happening in almost any project.
Whenever a MegaMenu is involved, things get messy and you cannot have a standard way that applies to all projects.

In our case it was not our boldness but rather the persistence of our customer, but I will take it :) 

You can see it in action here: Perdele si Draperii | Mendola Fabrics and here: NobilaCasa | Util pentru casa, perfect pentru cadou

Everything is configured from the back-end. except maybe for some sorting.

Thank you,
Adrian

 
Nuno Aguiar Dynamicweb Employee
Nuno Aguiar
Reply

Nice end result - congrats :)

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Hi guys

We have been discussing another approach where you can select a 'layout' for each type of dropdown we want to expose. Default for the navigation and then override for each page node.

Choosing a layout is the same as choosing a 'partial' template that will then render that part of the navigation.

Benefit of this is that templates will become very simple since they only handle one scenario - other benefit would be that you can customize by adding a new partial template that will then show up as a layout.

Unproven concept in production swift so far - but we have made some POCs with similar approach for paragraphs as well.

 
Nuno Aguiar Dynamicweb Employee
Nuno Aguiar
Reply

Hi Nicolai,

 

That is an interesting approach, I like it :) Specially for the mega menu situations, where we have a mix and match of situations.

 

Looking forward to kicking the tires on that one.

 

Nuno

 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Nicolai,

Nice indeed. Looking forward to play with it.

Thank you,
Adrian

 

You must be logged in to post in the forum