sitetree/sitetreeapp.py
def breadcrumbs(self, tree_alias, context):
        """Builds and returns breadcrumb trail structure for 'sitetree_breadcrumbs' tag.

        :param str|unicode tree_alias:
        :param Context context:
        :rtype: list|str
        """
        tree_alias, sitetree_items = self.init_tree(tree_alias, context)

        if not sitetree_items:
            return ''

        current_item = self.get_tree_current_item(tree_alias)

        breadcrumbs = []

        if current_item is not None:

            context_ = self.current_page_context
            check_access = self.check_access
            get_item_by_id = self.get_item_by_id

            def climb(base_item):
                """Climbs up the site tree to build breadcrumb path.

                :param TreeItemBase base_item:
                """
                if base_item.inbreadcrumbs and not base_item.hidden and check_access(base_item, context_):
                    breadcrumbs.append(base_item)

                if hasattr(base_item, 'parent') and base_item.parent is not None:
                    climb(get_item_by_id(tree_alias, base_item.parent.id))

            climb(current_item)
            breadcrumbs.reverse()

        items = self.apply_hook(breadcrumbs, 'breadcrumbs')
        self.update_has_children(tree_alias, items, 'breadcrumbs')

        return items
def breadcrumbs(self, tree_alias, context):
        tree_alias, sitetree_items = self.init_tree(tree_alias, context)

        if not sitetree_items:
            return ''

        current_item = self.get_tree_current_item(tree_alias)

        breadcrumbs = []

        if current_item is not None:

            context_ = self.current_page_context
            check_access = self.check_access
            get_item_by_id = self.get_item_by_id

            def climb(base_item):
                """Climbs up the site tree to build breadcrumb path.

                :param TreeItemBase base_item:
                """
                if base_item.inbreadcrumbs and not base_item.hidden and check_access(base_item, context_):
                    breadcrumbs.append(base_item)

                if hasattr(base_item, 'parent') and base_item.parent is not None:
                    climb(get_item_by_id(tree_alias, base_item.parent.id))

            climb(current_item)
            breadcrumbs.reverse()

        items = self.apply_hook(breadcrumbs, 'breadcrumbs')
        self.update_has_children(tree_alias, items, 'breadcrumbs')

        return items
def breadcrumbs ( self , tree_alias , context ) : tree_alias , sitetree_items = self . init_tree ( tree_alias , context ) if not sitetree_items : return '' current_item = self . get_tree_current_item ( tree_alias ) breadcrumbs = [ ] if current_item is not None : context_ = self . current_page_context check_access = self . check_access get_item_by_id = self . get_item_by_id def climb ( base_item ) : """Climbs up the site tree to build breadcrumb path.

                :param TreeItemBase base_item:
                """ if base_item . inbreadcrumbs and not base_item . hidden and check_access ( base_item , context_ ) : breadcrumbs . append ( base_item ) if hasattr ( base_item , 'parent' ) and base_item . parent is not None : climb ( get_item_by_id ( tree_alias , base_item . parent . id ) ) climb ( current_item ) breadcrumbs . reverse ( ) items = self . apply_hook ( breadcrumbs , 'breadcrumbs' ) self . update_has_children ( tree_alias , items , 'breadcrumbs' ) return items
Builds and returns breadcrumb trail structure for 'sitetree_breadcrumbs' tag.

        :param str|unicode tree_alias:
        :param Context context:
        :rtype: list|str
Builds and returns breadcrumb trail structure for sitetree_breadcrumbs tag .