Skip to content

Conversation

jweston491
Copy link

What does this implement/fix?

Out of the box, Lumberjack only registers one nav menu, "main-nav" in /config/menus.php, then manually adds that navigation Menu to the context in /app/Http/Lumberjack.php.

As currently implemented, this doesn't seem very DRY as it requires manually hard-coding the registered menus into the Lumberjack class. This pull request aims to rectify that.

Looking through the docs, I wasn't sure if there's a preferred way to register multiple navigation menus and add them to context, so I tried to build on the current implementation. If there's a better way to register new nav menus and add them to the context, please let me know.

Any other comments?

Twig doesn't like it when you use a dash (-) in a variable/attribute name, since Twig will interpret the dash as a minus operator. But registering navigation menus with underscores instead of dashes doesn't seem to be the "WordPress way". So if anyone wanted to use the default "main-nav" in their Twig templates, they'd have to use Twig's attribute() function, for example:

{% for item in attribute(_context, 'main-nav').items %}
    // Access item.title, item.link, etc.
{% endfor %}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant