• en
  • Language: ru
  • 3.7.x
  • Documentation version: 3.9

Как настроить меню навигации

В этом документе мы обсуждаем три различных способа настройки навигационных меню сайтов django CMS.

  1. Меню: статическое расширение пунктов меню

  2. Прикрепить меню: Прикрепите свое меню к странице.

  3. Модификаторы навигации: Изменение всего дерева меню

Прикрепить меню

Классы, которые расширяются из menus.base.Menu, всегда прикрепляются к корню. Но если вы хотите, чтобы меню было прикреплено к странице CMS, вы можете сделать и это.

Вместо расширения от Menu вам нужно расширяться от cms.menu_bases.CMSAttachMenu и вам нужно определить имя.

Мы сделаем это на примере, приведенном выше:

from menus.base import NavigationNode
from menus.menu_pool import menu_pool
from django.utils.translation import gettext_lazy as _
from cms.menu_bases import CMSAttachMenu

class TestMenu(CMSAttachMenu):

    name = _("test menu")

    def get_nodes(self, request):
        nodes = []
        n = NavigationNode(_('sample root page'), "/", 1)
        n2 = NavigationNode(_('sample settings page'), "/bye/", 2)
        n3 = NavigationNode(_('sample account page'), "/hello/", 3)
        n4 = NavigationNode(_('sample my profile page'), "/hello/world/", 4, 3)
        nodes.append(n)
        nodes.append(n2)
        nodes.append(n3)
        nodes.append(n4)
        return nodes

menu_pool.register_menu(TestMenu)

Теперь вы можете связать это меню со страницей на вкладке Дополнительно в настройках страницы под прикрепленным меню.