Jump to content

Recommended Posts

Posted

Hi everyone,

A visual menu builder for ProcessWire has been on my to-do list for a long time, and it’s finally ready. Meet NativeMenu: you build every kind of menu visually, with drag & drop and no code.
Simple dropdowns, mega menus and a logo in the middle are all possible.

1-frontend-mega.thumb.jpg.344d09830d54334ce1a3dcd991504831.jpg

What it does

  • Visual editor. The menu bar is edited as it looks. Drag elements or pages from the tree onto it, click an item to edit it, double-click to rename. Undo/redo, drafts, versions and a live preview are included.
  • Mega menus. Columns with a 12-unit grid. Blocks: links, headings, text, images, latest articles, buttons, search and HTML.
  • Mobile. Drawer (left/right), fullscreen or push-down menu. Submenus open as an accordion or as slide-in panels. Each mega menu has its own mobile layout.
  • Design without CSS. Style presets, colors, background, gradient or image, border, shadow and font.
    • “Match my website” reads colors and fonts from your template.
    • Bootstrap 5, UIkit 3 and plain markup are supported, and every class can be overridden.
  • Effects. Dropdown animations (fade, slide, grow, unfold, reveal), hover effects including a sliding indicator, a sticky / shrinking / hide-on-scroll header and an animated menu button.
  • Smart import. Paste the menu HTML of any template, or give a URL. Links are matched to your real pages, and the original markup can be kept. An optional AI assistant can build a menu from a description or match the remaining links.
  • One menu, many outputs. The same menu can also be rendered as footer columns, breadcrumbs (with JSON-LD), an HTML sitemap, an “In this section” sidebar, or as raw data for custom markup.
  • Multilanguage. Labels and URLs per language, page items follow the page title and URL in each language, and there is a language switcher with hreflang.
  • SEO / GEO.
    • Clean <nav> markup and schema.org SiteNavigationElement.
    • rel attributes per item.
    • /llms.txt generated from your menus, per language.
  • Check tab.
    • Flags broken links and pages that were deleted, unpublished or hidden.
    • Flags missing translations, alt texts and low color contrast (WCAG).
    • External links are checked daily.
       
  • More: show items only on certain pages or templates, scheduled items (from / until), visibility by role, anonymous click statistics (with NativeAnalytics integration), a library of reusable blocks, and a one-click offer to add new pages to the menu.
     

AI assistant (optional)

NativeMenu includes an optional AI assistant. It works with Anthropic (Claude) or any OpenAI-compatible API, including Azure, Mistral or a local server. Enter your API key in the module settings to switch it on.

  • Build a menu from a description. In the import dialog, choose Describe (AI) and write what you want. For example: "Main menu with Home, a mega menu 'Services' with one column per category and an image, About us with its subpages, Blog, and a 'Contact' button on the right." The AI only uses pages that exist on your site, so every link works.
  • Match links when importing a template. After a template import, links that could not be matched get an Ask AI to match button. The AI finds the right pages even across languages (e.g. "O nas" → "About us"). Every match it finds is marked "to check".
  • You always review first. Proposals appear in the same review table as a normal import, and nothing is saved until you confirm.
  • Private. Only page IDs, paths and titles are sent to the provider, never page content or user data. Requests are limited to 30 per user per hour.
  • Extendable. NativeMenuAI::request is hookable, so you can connect any other provider.

2-editor.thumb.jpg.3e501293c89e7c39ffc8969675b78293.jpg 3-mobile.thumb.jpg.13a9e60a28ce369662346a0f6bc2098d.jpg 4-design-animations.thumb.jpg.cc6dc5aa24ab906457c12acc4b39c6e4.jpg 5-smart-import.thumb.jpg.5e7a70e60afe7bdec78b2e2d8bf81dc9.jpg 6-one-menu-many-outputs.thumb.jpg.7f696803c84b6c784b470e8d58974f18.jpg

Usage

 
php
<?= $modules->get('NativeMenu')->render('main-menu') ?>
<?= $modules->get('NativeMenu')->renderColumns('main-menu') ?>      // footer
<?= $modules->get('NativeMenu')->renderBreadcrumbs('main-menu') ?>

CSS and JS are added automatically, only on pages that show a menu. Menus are cached per language and role, and the cache is cleared when a page in the menu changes.

Requirements: ProcessWire 3.0.200+, PHP 7.4+ (tested on 8.3). It works with the Uikit (incl. Konkat light/dark), Reno and Default admin themes.

Install: copy the folder to /site/modules/NativeMenu/, install the module and open Setup → Menus.

Feedback and ideas are very welcome!

Download: NativeMenu-1.0.0.zip

Enjoy
R

 

  • Like 6

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...