Welcome to Geeklog, Anonymous Wednesday, October 07 2026 @ 12:19 pm EDT

Menu 1.4.0 Brings Modern Navigation Features to Geeklog

  • Friday, September 18 2026 @ 06:04 am EDT
  • Contributed by:
  • Views: 213
Plugins

The Menu plugin for Geeklog has been updated to version 1.4.0.

This release focuses on modernization, compatibility and better integration with current Geeklog themes and plugins, while preserving existing Menu installations and legacy rendering.

Menu 1.4.0 supports Geeklog 2.1.1 through 2.2.2, PHP 5.6 through 8.1, MySQL/MariaDB, and both single-site and multisite installations.

Safer and more maintainable administration

A large part of the administration code has been reorganized into smaller dedicated modules.

Menu 1.4.0 now separates responsibilities such as:

  • menu and element views;
  • mutations;
  • element validation;
  • administration security;
  • image handling;
  • configuration validation.

The administration interface also benefits from stronger request validation, CSRF protection and safer escaping of stored values.

This work reduces dependency on older monolithic code and should make future development easier.

Better integration with modern Geeklog themes

One of the main changes in Menu 1.4.0 is a clearer separation between menu structure and presentation.

The Menu plugin remains responsible for:

  • menu hierarchy;
  • destinations;
  • permissions;
  • ordering;
  • navigation structure.

Themes can now take responsibility for the actual HTML, CSS and JavaScript presentation when required.

This makes it possible for modern themes to reuse Menu's navigation logic without having to reproduce its permission and destination handling.

Legacy rendering remains available, so existing sites and themes continue to work as before.

A new resolved menu tree API

Menu 1.4.0 formalizes its presentation-neutral navigation tree.

Developers can retrieve a menu through:

MENU_getResolvedTree($name);

and detect the supported contract with:

MENU_getResolvedTreeContractVersion();

The returned tree is already filtered according to the current Geeklog visitor's permissions.

This allows themes and plugins to consume navigation data without directly querying Menu database tables or rebuilding access rules themselves.

The resolved tree also exposes the currently selected menu item, making it easier for themes to generate their own navigation states.

New Geeklog Plugin Services

Menu 1.4.0 also introduces two read-only services through Geeklog's existing PLG_invokeService() mechanism:

getMenuList
getMenuTree

These services provide a standard way for other Geeklog components to discover available menus and retrieve their navigation structure.

For example, a theme, integration plugin or future AI-oriented service can request Menu data while leaving permissions and menu resolution under the control of the Menu plugin itself.

This is an important step toward cleaner interoperability between Geeklog plugins.

Smarter CSS and JavaScript loading

Frontend assets are now loaded more selectively.

On recent Geeklog versions, Menu tracks which menus are actually used during the current request and only loads the legacy CSS or SlickNav JavaScript when required.

For example, a simple footer menu no longer needs to load SlickNav just because another horizontal menu exists in the database.

Unused menu resources can therefore avoid contributing unnecessary frontend files.

Geeklog 2.1.1 keeps a more conservative compatibility fallback because its page rendering lifecycle differs from Geeklog 2.2.2.

Improved theme footer support

Menu colors now remain authoritative when a menu is embedded inside theme areas such as a footer.

This fixes situations where a menu looked correct inside normal content but inherited more specific link colors from the active theme when rendered in the footer.

Normal, visited, active, hover and focus states now better respect the configuration defined in the Menu administration interface.

Better cache invalidation

Generated Menu CSS now uses a cache key that includes a presentation template fingerprint.

When Menu presentation templates change during an upgrade, the cache key changes automatically.

This prevents an older generated CSS file from continuing to be reused after the plugin templates themselves have been updated.

Improved compatibility with older configurations

Older Menu installations can contain historical or incomplete configuration values.

Version 1.4.0 adds safer defaults for missing configuration entries and improves handling of legacy color formats such as:

#RRGGBB
RRGGBB
#RGB
RGB

Empty, malformed or historical values are also handled more safely.

This is particularly useful when upgrading long-running Geeklog installations.

Improved localization

English is now used as the canonical language contract.

The active translation is loaded over the English strings, allowing missing translated keys to fall back safely instead of generating undefined language-key warnings.

The French administration translation has also been expanded, and automated language checks are now part of the development workflow.

Multisite improvements

Menu-owned private data now follows site-specific Geeklog storage paths where appropriate.

Migration routines remain conservative and non-destructive, which is especially important for Geeklog installations sharing the same plugin code between several sites.

Improved build and release process

Menu 1.4.0 also introduces a more reliable automated build process.

The project now includes automated testing on PHP 5.6 and PHP 8.1, language-contract checks and generation of the installable plugin archive.

The actual menu-1.4.0.zip archive is built and verified automatically, helping ensure that the package tested during development is the same kind of archive used for installation and upgrades.

Download Menu 1.4.0

Menu 1.4.0 is available from the official Geeklog Plugins repository:

https://github.com/Geeklog-Plugins/menu/

Before upgrading a production site, back up the Geeklog database and site files, then install the new archive using the standard Geeklog plugin upgrade process.

After upgrading, check your existing menus, header and footer integrations, and review the Geeklog and PHP error logs for any unexpected warnings.

Menu 1.4.0 preserves the plugin's existing role as a flexible Geeklog navigation manager while providing a cleaner foundation for modern themes, plugin interoperability and future development.