Django CMS Navigation

Django CMS Приступая к работе - Навигация

28 August 2013 г. 11:25:22

Существует четыре тега шаблонов, которые Вы можете использовать при подключении меню:

Для использования любого из этих тэгов вам необходимо подключить {% load menu_tags %}  в вашем шаблоне, перед первым вызовом.

Замечание

Учтите, пожалуйста, что такое меню было разработано, чтобы быть независимым от приложения. Таким образом, меню является меню приложения, а не   cmsapplication.

4.1. show_menu

{% show_menu %} отображает навигацию текущей страницы. Вы можете переопределить внешний вид и HTML если добавите в Ваш проект шаблон menu/menu.html или отредактируете один из предоставленных django-cms. show_menu принимает четыре необязательных параметра: start_level, end_level, extra_inactive и extra_active.

Первые два параметра, start_level (по умолчанию 0) и end_level(по умолчанию 100) определяет, с какого уровня навигация будет отображена и на каком уровне должна остановиться. Если у вас есть корневой узел и вы не хотите отображать корневой узел, вы можете отображать навигацию только с первого уровня.

Третий параметр extra_inactive(по умолчанию 0) определяет  оличество уровней навигации, которые будут отображены если узел не является предком или потомком данного.

Четвертый параметр extra_active(по умолчанию 100) определяет количество уровней потомков, которые должны быть отображены после текущего.

Вы можете подставлять параметры шаблона в этот тэг. 

4.1.1. Немного примеров

Полная навигация (как вложенный список):

{%loadmenu_tags%}
<ul>
   {%show_menu 0 100 100 100%}
</ul>

Навигация в виде дерева, начиная с текущего элемента (как вложенный список):

<ul>
   {%show_menu 0 100 0 100%}
</ul>

Навигация с одним единственным дополнительным уровнем:

<ul>
   {%show_menu 0 100 0 1%}
</ul>

Навигация с первого элемента(как вложенный список):

<ul>
   {%show_menu 1%}
</ul>

Навигация с собственным шаблоном:

{%show_menu 0 100 100 100 "myapp/menu.html"%}

4.2. show_menu_below_id

Вы можете указать ID страницы в дополнительных настройках и  Вы сможете отображать подменю этой страницы используя его в тэге шаблона. Например, у нас есть страница которая называется "meta" которая не отображается в навигации и у этой страницы Id “meta”:

<ul>
   {%show_menu_below_id "meta"%}
</ul>

Вы можете указать некоторые дополнительные параметры так-же как в show_menu:

<ul>
   {%show_menu_below_id "meta" 0 100 100 100 "myapp/menu.html"%}
</ul>

4.3. show_sub_menu

Отображает подменю текущей странице в виде вложенного списка.

Первый параметр  levels (по умолчанию = 100) определяет количество уровней в глубину подменю, которое должно быть отображено.

Второй параметр root_level (по умолчанию = None) определяет на каком уровне у меню должен быть корневой узел. Например, если root_level = 0 меню начнется с этого уровня, несмотря на то, на каком уровне находится текущая страница.

Третий аргумент nephews(по умолчанию = 100) определяет сколько узлов на данном уровне будут отображены

Шаблоны можно найти в  cms/sub_menu.html:

<ul>
   {%show_sub_menu 1 %}
</ul>

Начиная с 0-го уровня:

<ul>
   {%show_sub_menu 1 0%}
</ul>

Или используя собственный шаблон:

<ul>
   {%show_sub_menu 1 "myapp/submenu.html"%}
</ul>

4.4. show_breadcrumb

Отображает "хлебные крошки" для текущей страницы. HTML шаблон можно найти в файле menu/breadcrumb.html:

{%show_breadcrumb%}

Или используя собственный шаблон, при этом отображая только 2-й уровень и выше:

{%show_breadcrumb 2 "myapp/breadcrumb.html"%}

Если текущий URL не управляется CMS или Вы используете дополнительную навигацию, Вам может понадобиться предоставить собственные  "хлебные крошки" с помощью шаблона. Чаще всего это используется для страниц вроде Входа, Выхода или для страниц сторонних приложений.

4.5. Свойства узлов навигации в шаблонах

{{node.is_leaf_node}}

Является ли узел последним в дереве. Если да, то у него нет потомков. (Как правило приходит из mtpp)

{{node.level}}

Уровень данного узла. Счет начинается с 0.

{{node.menu_level}}

Уровень узла от корневого элемента в меню, начинается с. Если ваше меню начинается с уровня 1 или у вас есть “soft root” (описание в следующей секции) первый элемент по-прежнему вернет 0 в menu_level.

{{node.get_absolute_url}}

Абсолютный URL узла, без протокола, домена и порта.

{{node.title}}

Заголовок узла используя на текущем языке.

{{node.selected}}

Если true, то этот узел выбран для данного URL.

{{node.ancestor}}

Если true, то этот узел является предком данного.

{{node.sibling}}

Если true, то этот узел находится на одном уровне с текущим узлом.

{{node.descendant}}

Если true, то узел является потомком текущего узла.

{{node.soft_root}}

True, елси узел “soft root”.

4.6. Soft Roots

4.6.1. Что делает Soft Root

Soft root - это страница которая для меню навигации ведет себя точно так же как корневая страница.

Обычно, это страница, которая является корневой для определенной секции на вашем сайте.

Когда soft root включен, меню навигации для любой страницы начинается с ближайшей страницы soft root, меньшей, чем корневая станица сайта в иерархии.

Эта настройка полезна, когда у Вашего сайта глубокая иерархия (и, таким образом, много уровней в дереве навигации). В этом случае, как правило, Вы не хотите показывать посетителям всю глубину вложенных элементов.

Например, вы находитесь на странице “Introduction to Bleeding”, таким образом меню может выглядеть так:

  • School of Medicine

    • Medical Education

    • Departments

      • Department of Lorem Ipsum

      • Department of Donec Imperdiet

      • Department of Cras Eros

      • Department of Mediaeval Surgery

        • Theory

        • Cures

          • Bleeding

            • Introduction to Bleeding <this is the current page>

            • Bleeding - the scientific evidence

            • Cleaning up the mess

          • Cupping

          • Leaches

          • Maggots

        • Techniques

        • Instruments

      • Department of Curabitur a Purus

      • Department of Sed Accumsan

      • Department of Etiam

    • Research

    • Administration

    • Contact us

    • Impressum

очевидно, что это меню избыточно.

Сделая “Department of Mediaeval Surgery” как soft root. меню станет более удобным:

  • Department of Mediaeval Surgery

    • Theory

    • Cures

      • Bleeding

        • Introduction to Bleeding <current page>

        • Bleeding - the scientific evidence

        • Cleaning up the mess

      • Cupping

      • Leaches

      • Maggots

    • Techniques

    • Instruments

4.6.2. Ипользование Soft Root

Чтобы включить эту настройку в файле settings.py требуется указать:

CMS_SOFTROOT = True

Отметьтестраницу как soft root в дополнительных настройках в панели администратора.

4.7. Изменение и расширение меню

Пожалуйста, обратитесь в раздел  интеграция приложений.

 


Оставьте свой комментарий

comments powered by Disqus
Меню

Cult of digits 2014 Яндекс.Метрика