boot(), so its pages appear alongside the built-in ones.
Add an item
src/Plugin.php
Registry::item(string $target, Item $item) appends to a section. If an item with the same URL is already registered in that section, the new one is ignored, so booting twice can’t duplicate an entry.
Item reference
Icon formats
Sections
Creating a section is possible too, though it only shows up where a template renders it:
Show items conditionally
Registration happens once per request, so read your feature flag inboot():
Highlighting the current page
Templates decide which entry is active from theactive_menu variable, so set it to the same URL you registered:
{% set active_menu = 'settings' %} instead, and pages under Plugins use {% set active_menu = '/admin/plugins' %}.
Translating labels
Labels pass through gettext with thenav context, and the templates translate them again at render time. Always wrap them: