Logo

Navigation

  • index
  • modules |
  • CubicWeb 3.35.12 »
  • Breadcrumbs

Breadcrumbs¶

Breadcrumbs are a navigation component to help the user locate himself along a path of entities.

Display¶

Breadcrumbs are displayed by default in the header section (see Layout and sections). With the default main template, the header section is composed by the logo, the application name, breadcrumbs and, at the most right, the login box. Breadcrumbs are displayed just next to the application name, thus they begin with a separator.

Here is the header section of the CubicWeb’s forge:

../../../../_images/breadcrumbs_header.png

There are three breadcrumbs components defined in cubicweb.web.views.ibreadcrumbs:

  • BreadCrumbEntityVComponent: displayed for a result set with one line if the entity is adaptable to IBreadCrumbsAdapter.

  • BreadCrumbETypeVComponent: displayed for a result set with more than one line, but with all entities of the same type which can adapt to IBreadCrumbsAdapter.

  • BreadCrumbAnyRSetVComponent: displayed for any other result set.

Building breadcrumbs¶

The IBreadCrumbsAdapter adapter is defined in the cubicweb.web.views.ibreadcrumbs module. It specifies that an entity which implements this interface must have a breadcrumbs and a parent_entity method. A default implementation for each is provided. This implementation expoits the ITreeAdapter.

Note

Redefining the breadcrumbs is the hammer way to do it. Another way is to define an ITreeAdapter adapter on an entity type. If available, it will be used to compute breadcrumbs.

Here is the API of the IBreadCrumbsAdapter class:

IBreadCrumbsAdapter.parent_entity()[source]¶
IBreadCrumbsAdapter.breadcrumbs(view=None, recurs=None)[source]¶

return a list containing some:

  • tuple (url, label)

  • entity

  • simple label string

defining path from a root to the current view

the main view is given as argument so breadcrumbs may vary according to displayed view (may be None). When recursing on a parent entity, the recurs argument should be a set of already traversed nodes (infinite loop safety belt).

If the breadcrumbs method return a list of entities, the cubicweb.web.views.ibreadcrumbs.BreadCrumbView is used to display the elements.

By default, for any entity, if recurs=True, breadcrumbs method returns a list of entities, else a list of a simple string.

In order to see a hierarchical breadcrumbs, entities must have a parent method which returns the parent entity. By default this method doesn’t exist on entity, given that it can not be guessed.

Table Of Contents

  • Breadcrumbs
    • Display
    • Building breadcrumbs

Changelog

Latest releases

Quick search

Navigation

  • index
  • modules |
  • CubicWeb 3.35.12 »
  • Breadcrumbs
© Copyright 2001-2020, Logilab. Last updated on Nov 15, 2022. Created using Sphinx 4.5.0.