PHPackages                             am-impact/amnav - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. am-impact/amnav

ActiveCraft-plugin[Utility &amp; Helpers](/categories/utility)

am-impact/amnav
===============

Navigation Plugin for Craft

1.8.0(9y ago)16726.5k19[17 issues](https://github.com/am-impact/amnav/issues)[1 PRs](https://github.com/am-impact/amnav/pulls)PHP

Since Apr 17Pushed 8y ago14 watchersCompare

[ Source](https://github.com/am-impact/amnav)[ Packagist](https://packagist.org/packages/am-impact/amnav)[ RSS](/packages/am-impact-amnav/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (20)Used By (0)

a&amp;m nav
===========

[](#am-nav)

*Navigations in Craft, made easy*

Functionality
-------------

[](#functionality)

In the plugin's settings you can adjust the plugin's name for your customers and disable adding, editing and deleting navigations for non-admins.

[![Settings](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/settings.jpg "Settings")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/settings.jpg)

The navigations overview. If you disabled the **Can add, edit and delete** setting in the plugin's settings, non-admins will only see the created navigations and the link to start building their navigation.

[![Navigations](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/menus.jpg "Navigations")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/menus.jpg)

When you create or edit a navigation, you can set the following settings:

SettingExplanationMax LevelsThe maximum number of levels this navigation can have. Leave blank if you don’t care.Can move from levelWhether non-admins can move nodes from a specific level. Leave blank if you don’t care.Can delete from levelWhether non-admins can delete nodes from a specific level. Leave blank if you don’t care.[![Edit](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/edit.jpg "Edit")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/edit.jpg)

Let's start building a navigation! Non-admins don't see the **Display navigation** section. This is for admins only so they know what to put in the templates. You have the option to add existing entries, categories, assets or..

[![Build](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/build.jpg "Build")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/build.jpg)

.. add your own URLs.

[![Your own URL](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/own-url.jpg "Your own URL")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/own-url.jpg)

When you have saved your nodes in the navigation, you can edit them later by double clicking on the node, or use the setting button behind the node when you hover over a node.

[![Edit node](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/edit-page.jpg "Edit node")](https://raw.githubusercontent.com/am-impact/am-impact.github.io/master/img/readme/amnav/edit-page.jpg)

Variables
---------

[](#variables)

You have two ways to fetch your navigation. You can get an array with your added nodes, or let a&amp;m nav create the HTML for you.

```
{% set nav = craft.amNav.getNavRaw("yourNavigationHandle") %}

or

{{ craft.amNav.getNav("yourNavigationHandle") }}

```

Build the way you like it
-------------------------

[](#build-the-way-you-like-it)

Now you can add your own HTML if necessary!

```
{% set nav = craft.amNav.getNavRaw("yourNavigationHandle") %}

{% macro addNodeToNavigation(node, index) %}
    {%- set nodeClasses = [] -%}
    {%- if node.hasChildren -%}
        {%- set nodeClasses = nodeClasses|merge(['has-children']) -%}
    {%- endif -%}
    {%- if node.active or node.hasActiveChild -%}
        {%- set nodeClasses = nodeClasses|merge(['active']) -%}
    {%- endif -%}
    {%- if node.level == 1 and index == 1 -%}
        {%- set nodeClasses = nodeClasses|merge(['first']) -%}
    {%- endif -%}
    {%- if node.listClass|length -%}
        {%- set nodeClasses = nodeClasses|merge([node.listClass]) -%}
    {%- endif -%}

        {{ node.name }}
        {% if node.hasChildren %}

                {% for subnode in node.children %}
                    {{ _self.addNodeToNavigation(subnode, loop.index) }}
                {% endfor %}

        {% endif %}

{% endmacro %}

        {% for node in nav %}
            {{ _self.addNodeToNavigation(node, loop.index) }}
        {% endfor %}

```

### Parameters

[](#parameters)

ParameterExplanationmaxLevelBuild the navigation till a certain level.overrideStatusIncludes every node whatever the status.startFromIdBegin the navigation at a specific node ID.Let amnav do the trick
----------------------

[](#let-amnav-do-the-trick)

```
{{ craft.amNav.getNav("yourNavigationHandle") }}

```

or with parameters..

```
{{ craft.amNav.getNav("yourNavigationHandle", {
    id: 'navigation',
    class: 'navigation'
}) }}

```

### Parameters

[](#parameters-1)

ParameterExplanationidID for the navigation UL.classClass name for the navigation UL.classActiveClass name for the active nodes.classBlankClass name for hyperlinks that have a \_blank target.classLevel2Class name for the children UL. You can add a classLevel for every level you need (e.g.: classLevel2, classLevel3).classChildrenClass name for a node that has children.classFirstClass name for the first node in the navigation.excludeUlExclude the main UL wrapper.maxLevelBuild the navigation till a certain level.overrideStatusIncludes every node whatever the status.startFromIdBegin the navigation at a specific node ID.Breadcrumbs
-----------

[](#breadcrumbs)

Breadcrumbs are not based on a created navigation. They are based on the current URL segments.

```
{{ craft.amNav.getBreadcrumbs() }}

```

or with parameters..

```
{{ craft.amNav.getBreadcrumbs({
    id: 'breadcrumbs',
    class: 'breadcrumbs'
}) }}

```

### Parameters

[](#parameters-2)

ParameterExplanationidID for the breadcrumbs wrapper.classClass name for the breadcrumbs wrapper.classDefaultDefault class name for every breadcrumb.classFirstClass name for the first breadcrumb.classLastClass name for the last breadcrumb.wrapperWrapper element without the &lt; and &gt;.beforeTextText before the first item, like 'You are here:'.renameHomeChange the title of the home entry.lastIsLinkWhether the last breadcrumb should be a link.Contact
-------

[](#contact)

If you have any questions, suggestions or noticed any bugs, don't hesitate to contact us.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 55.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~44 days

Recently: every ~130 days

Total

18

Last Release

3300d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ae37e8bdbd8456b5140fe0bec73129ffde4751deb7f98c5bafb1608e988759b5?d=identicon)[hubertprein](/maintainers/hubertprein)

---

Top Contributors

[![hubertprein](https://avatars.githubusercontent.com/u/6221899?v=4)](https://github.com/hubertprein "hubertprein (10 commits)")[![raymondelooff](https://avatars.githubusercontent.com/u/9716806?v=4)](https://github.com/raymondelooff "raymondelooff (3 commits)")[![dubcanada](https://avatars.githubusercontent.com/u/120325?v=4)](https://github.com/dubcanada "dubcanada (1 commits)")[![jayelkaake](https://avatars.githubusercontent.com/u/314966?v=4)](https://github.com/jayelkaake "jayelkaake (1 commits)")[![nfourtythree](https://avatars.githubusercontent.com/u/266453?v=4)](https://github.com/nfourtythree "nfourtythree (1 commits)")[![janhenckens](https://avatars.githubusercontent.com/u/755428?v=4)](https://github.com/janhenckens "janhenckens (1 commits)")[![hahnzilla](https://avatars.githubusercontent.com/u/2165506?v=4)](https://github.com/hahnzilla "hahnzilla (1 commits)")

### Embed Badge

![Health badge](/badges/am-impact-amnav/health.svg)

```
[![Health](https://phpackages.com/badges/am-impact-amnav/health.svg)](https://phpackages.com/packages/am-impact-amnav)
```

###  Alternatives

[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

18238.1k2](/packages/civicrm-civicrm-drupal-8)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[humanmade/lottie-lite

A lightweight Lottie Animations Extension for WordPress

374.3k](/packages/humanmade-lottie-lite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
