This is an extension to Kotti that renders navigation displays in a choice of available locations for a Kotti website (top nav, left slot, right slot).
To activate kotti_navigation add the following entry, as with any add-on, to kotti.configurators of your .ini config file. kotti_navigation
depends on kotti_settings, so you have to add also an entry for this add-on. So the kotti.configurators part of your your ini file should include the following lines.
kotti.configurators =
...
kotti_navigation.kotti_configure
kotti_contentpreview.kotti_configure
You have different settings to adjust kotti_navigation
to your needs. You can view the settings page at http://yourkottidomain.tld/@@settings and you can find a link to Settings
in the Administrator
dropdown of the editor bar. By default, no special navigation is activated and the default navigation bar from Kotti will be used.
The navigation widget can be displayed in all slot of Kotti
, see the API documentation of Kotti for more information about slots.
There are six slots or locations are available to include the navigation widget::
- top (within and beneath the default nav toolbar)
- left (slot)
- right (slot)
- abovecontent (slot)
- belowcontent (slot)
- beforebodyend (slot)
Here are the slot choices in a layout diagram:
+------------------------------------------------------+
| nav (the nav in the Kotti toolbar -- configurable) |
|------------------------------------------------------|
| editor_bar |
|+----------------------------------------------------+|
|| breadcrumbs ||
|+-------------++---------------------++--------------+|
|| SLOT "left" || SLOT "abovecontent" || SLOT "right" ||
|| |+---------------------+| ||
|| || Content || ||
|| |+---------------------+| ||
|| || SLOT "belowcontent" || ||
|+-------------++---------------------++--------------+|
| footer |
|------------------------------------------------------|
| SLOT "beforebodyend" |
+------------------------------------------------------+
For every location you have an own tab in the settings. There you can choose if the navigation is enabled for the location and how it will be displayed. The following options are available.
With the display type you choose how your navigation will be rendered.
- Not enabled
As expected the widget will not be shown in the slot.
- Tree
The full tree is used for the navigation.
- Items
Only the the children of the current context are included.
- Menu
The navigation will be rendered as a dropdown menu.
- Breadcrumbs
Here the real breadcrumbs will be rendered, useful when you need it in another slot than usual.
For a typical website that has a tree navigation display in the left slot, you would configure for only the left location, and omit configuration for any other. But you are encouraged to play around with the possibilities.
The options are a multi selection box, so you can enable how much you want, however it will not always make sense to mix all of the options together.
- List
- Pills
- Tabs
These define the bootstrap classes that are used to render the navigation. It is recommended to only use one of them.
- Stacked
This makes your navigation stackable. Refer to the bootstrap documentation for more information.
- Open all
This will be open all of your menu points no matter where your context is. This is useful if you plan to set up a menu via css or javascript, because all items in the site hierarchy are always included.
- With Dropdowns
tbd
- Show Menu
tbd
- Include Root
Indicate if the root object will be included on the top of the navigation and so an item showing the title of the root of the site is inserted as the first item for the display choices.
- Show hidden while logged in
With this option enabled items that are not included in the navigation for the user of the website are shown to the editor or admin.
Here you find a list of the content type names that are to be allowed in a given navigation display. Use this, for example, to have a nav tabs display in the top location, along with an images-only display in the right slot. The images-only nav display could be given a label such as "Images:" for clarity.
This is a list of the names of content types that are to be ignored in the navigation display. It is the opposite of the Include Content Types
setting described above. It is commonly used to exclude the Image content type from a normal nav display, to avoid the "clutter" with listing images, which can be numerous. The same could be true for other content items, such as for a site that allows the Event content type
of kotti_calendar to be stored in various places in the site, and where events are wished to be shown only on calendar or event list displays.
The label is optional, but can provide clarification in some nav display cases. It is positioned within the display in different ways, depending on display type. In a tree-type display (one of the "stacked" display choices), it is at the top of the display. The label is optional, but can provide clarification in some nav display cases. It is positioned within the display in different ways, depending on display type.
The current context will be indicated by the highlighting of the context menu item in the indented display. This is normally adequate. However, for extra clarity, or for some special reason, you may want to include the current context in the label, in a phrase such as "Current item: context", where the word context
would be replaced by the actual context.title. To do this, include the actual word context
in the label text, so <context>
would become ${'<' + context.title '>'} in the template code.