[Seaside] Navigation in Seaside

Lukas Renggli renggli at gmail.com
Tue Apr 8 06:09:33 UTC 2008

Hi Slava,

sorry for not replying such a long time.

>  At the moment Weblocks has a navigation widget (component), which is a
>  class that contains a dictionary of pane names and other widgets, as
>  well as the currently selected pane. When the navigation is rendered,
>  the currently selected pane is rendered along with navigation links.
>  Cliking on a particular link resets the current pane. This system is
>  tied to a friendly URL system, so that a URL path is broken into
>  tokens and the framework automatically selects appropriate panes.

Seaside also has a navigation component (or widget), that is
essentially implemented the same way. It has several concrete
subclasses (depending on the version of Seaside) that either renders
it as an list of links or a select form. With CSS the widget is then
styled to look like a tab-panel for example.

We do not do have the "friendly URL system" though. Just out of
curiosity: How do you handle conflicts in the URL, when multiple
navigation widgets appear on the same page?

>  This system works, but it's somewhat quirky. I can't quite put my
>  finger on where I went wrong with the design, but there is some
>  inelegance which I can't resolve.

I don't see anything wrong with the design, except that maybe the
model should be better separated. In the AJAX/JavaScript package we
have more sophisticated tab panel implementation. It has its own
navigation-item class, that implements functionality for enablement,
visibility and closing of the navigation item. There are several
subclasses for concrete implementations like AJAX driven accordion,
carousel, tab panel, etc.


Lukas Renggli

More information about the seaside mailing list