docs: def modify(self, request, nodes, namespace, root_id, post_cut, breadcrumb):
          """
          Actual modifier function
          :param request: request
          :param nodes: complete list of nodes
          :param namespace: Menu namespace
          :param root_id: eventual root_id
          :param post_cut: flag for modifier stage
          :param breadcrumb: flag for modifier stage
          :return: nodeslist
          """
          app = None
          config = None
          if getattr(request, 'current_page', None) and request.current_page.application_urls:
              app = apphook_pool.get_apphook(request.current_page.application_urls)
  
          if app and app.app_config:
              namespace = resolve(request.path).namespace
              if not self._config.get(namespace, False):
                  self._config[namespace] = app.get_config(namespace)
              config = self._config[namespace]
          try:
              if config and (
                      not isinstance(config, BlogConfig) or
                      config.menu_structure != MENU_TYPE_CATEGORIES
              ):
                  return nodes
          except AttributeError:  # pragma: no cover
              # in case `menu_structure` is not present in config
              return nodes
          if post_cut:
              return nodes
          current_post = getattr(request, get_setting('CURRENT_POST_IDENTIFIER'), None)
          category = None
          if current_post and current_post.__class__ == Post:
              category = current_post.categories.first()
          if not category:
              return nodes
  
          for node in nodes:
              if '{0}-{1}'.format(category.__class__.__name__, category.pk) == node.id:
                  node.selected = True
          return nodes