Cloee Docs
Paymenter ExtensionsNavBar Manager

Installation

NavBar Manager installation and usage.

Installation & Usage

1. Install the Extension

  1. Copy the extension directory to extensions/Others/NavEditor or use paymenter extension installer (Administration → Extensions→Install extension)
  2. Enable it from Administration → Extensions. Activation runs the Nav Editor migration (extensions/Others/NavEditor/database/migrations) and creates the navigation table.

2. Navigation Manager Overview

  • Access the manager from Administration → Extensions → Navigation Manager.
  • Top-level records render as primary navigation links. Assign a Parent Link to place an item inside a dropdown.
  • Drag-and-drop the list to update sort_order; lower numbers appear earlier in the menu.
  • Toggle Enabled to hide or show a link without deleting it. Disabled links are skipped entirely when building the navigation tree.

Every link requires a unique Slug / Identifier ([A-Za-z0-9-_\/]+). Slugs drive routing for custom pages and external link tracking.

Application Route

  • Provide an application Route Name (e.g. home, dashboard, clients.show).
  • Use the Route Parameters repeater to supply key/value pairs. Scalar values are stored as strings; use JSON for nested values.
  • The Enable SPA navigation toggle determines whether the link is handled by the SPA router. Disable it for routes that must trigger a full page reload.

External URL

  • Enter the absolute External URL (validated with url() rules).
  • The slug is used to generate an internal redirect route nav-editor/link/{link:slug}.
  • Open in new tab adds target="_blank" and rel="noopener" to the generated link.

Custom Page

  • Supply a slug such as policies/privacy. Nav Editor registers a corresponding Laravel route named nav-editor.custom.policies.privacy.
  • Populate Custom Page Content with Markdown or basic HTML. Content is rendered through the active theme layout, so headers, buttons, and other components inherit the site styling.
  • Each custom page automatically receives the link label as its <title> and a centered icon (if one is configured).

5. Display Options

  • Remix Icon – enter the base Remix icon name (e.g. ri-home-2). Icon input is sanitized and verified; the system automatically switches between line/fill variants to match the theme.
  • Sort Order – numeric priority; smaller values render first within their parent.
  • Show separator after this link – inserts a divider after the item in navigation dropdowns.
  • Parent Link (for dropdown) – pick another top-level link to create nested menus. The manager prevents circular references.

6. Custom Page Rendering

  • Custom pages reuse the active theme layout (themes/{theme}/views/layouts/app.blade.php). If the requested layout is missing, the default theme layout is used.
  • Markdown rendering is handled server-side with Str::markdown(), allowing editors to drop in headings, lists, and code blocks without writing raw HTML.
  • When no content is provided the visitor sees a placeholder message ("No custom content provided yet.").

7. Icon Handling Details

  • Icons are normalized via IconNormalizer, ensuring consistent ri- prefixes, removing stray variants, and validating availability in the Remix icon set.
  • Invalid icon names fail validation with a descriptive error, preventing broken icons in production.
  • Saved records are repaired on boot, so fixing the icon value in the database happens automatically when the extension loads.

8. Permissions & Roles

Make sure admin roles include the Filament resource permissions for navigation links. Without them, the Navigation Manager entry will not appear in the sidebar.

9. Testing Checklist

  • Create a top-level Application Route link and confirm it appears in the primary navigation.
  • Add a child link with a higher sort order and verify dropdown ordering and separators behave as expected.
  • Create an External URL and test that it redirects through /nav-editor/link/{slug} (and respects new-tab settings).
  • Build a Custom Page, visit the generated URL, and confirm Markdown renders and the theme layout is applied.
  • Disable a link and ensure it disappears from the menu without deleting related children.

On this page