Menu 1.3.0 for Geeklog Is Now Available
- Wednesday, August 26 2026 @ 04:51 am EDT
- Contributed by: ::Ben
- Views: 121
Menu 1.3.0 for Geeklog is now available.
This new release brings a major modernization of the Menu plugin while preserving compatibility with existing Geeklog installations, menu structures and legacy rendering.
Menu 1.3.0 is designed for real-world use on existing sites, with support for Geeklog 2.1.1 through 2.2.2 and PHP 5.6 through 8.1. The release improves security, performance, administration, multisite support and integration with modern Geeklog themes.
The goal of Menu 1.3.0 is not to reinvent navigation or force existing sites into a new architecture.
The modernization has deliberately been conservative: preserve what already works, remove obsolete code, strengthen weak points and provide cleaner foundations for future development.
Existing menu structures, permissions, ordering and legacy rendering remain supported, while the internal architecture has been substantially cleaned up.
Main Improvements in Menu 1.3.0
- Geeklog 2.1.1 through 2.2.2 compatibility
- PHP 5.6 through 8.1 compatibility
- Improved multisite support
- Safer persistent storage and migration
- Stronger administration and CSRF protection
- Improved SQL and output validation
- Safer URL handling
- More robust image uploads
- Generated filenames for uploaded images
- Improved cache handling and invalidation
- Fewer database queries when loading menus
- Safer menu cloning and deletion
- Protection against invalid hierarchy cycles
- Improved menu element creation and editing
- Reliable drag-and-drop ordering
- Keyboard and up/down ordering fallback
- Improved Display After behavior
- Cleaner administration architecture
- Improved menu preview
- Better support for modern Geeklog themes
Better Support for Modern Geeklog Themes
One of the most important changes in Menu 1.3.0 is not immediately visible in the administration interface.
The plugin can now provide themes with a resolved, presentation-neutral menu tree. This allows a modern theme to use the menu structure managed by the plugin while generating its own HTML, CSS and JavaScript.
The Menu plugin therefore remains responsible for menu structure, hierarchy, order, permissions and destination resolution, while the theme can decide how the navigation should be presented.
This approach is particularly useful for responsive and mobile-first themes and reduces the need to duplicate navigation logic inside themes.
It also makes cleaner integrations possible with modern themes such as Eclipse while preserving compatibility with existing Geeklog themes.
Legacy Rendering is Still Supported
Modernization does not mean removing working functionality simply because it is old.
The existing legacy rendering system remains available for sites and themes that still depend on it. Responsive SlickNav support is retained as a compatibility layer for legacy horizontal cascading menus.
Modern themes, however, can bypass that legacy presentation layer and render the menu structure themselves.
At the same time, obsolete browser-specific code, unused administration assets and dead persistence paths have been removed.
Older components that are still required have been cleaned and isolated instead of being replaced without a clear compatibility benefit.
A Cleaner and Safer Administration Interface
A substantial part of the work on Menu 1.3.0 focused on administration.
Creating and editing menu elements now share the same JavaScript behavior, which removes duplication and reduces the risk of inconsistent behavior between both screens.
Parent selection has also been hardened. An element can no longer be moved under one of its own descendants, preventing invalid loops such as A → B → A.
Menu ordering has been stabilized as well. Drag-and-drop remains available, with keyboard or traditional up/down controls available as a fallback.
The administration controller has also been significantly simplified. Database mutations, validation and view construction are now separated into dedicated modules instead of being concentrated in one large file.
This makes the plugin easier to maintain and provides a cleaner base for future improvements.
Performance Improvements
The runtime menu loader has been redesigned to reduce unnecessary database activity.
Instead of repeatedly querying the database for individual menus and their elements, Menu 1.3.0 can load menu data using a small fixed number of queries and rebuild the hierarchy in memory.
Database indexes have also been reviewed, particularly around menu IDs, parent IDs and element ordering.
New menu elements now rely on the database's normal AUTO_INCREMENT behavior instead of the historical MAX(id) + 1 approach.
These changes make the plugin more reliable and provide a better foundation for installations using several menus or larger menu trees.
Security and Data Safety
State-changing administration operations received a broad security review.
Mutating actions now use stricter authorization, POST handling and Geeklog security-token validation.
Numeric identifiers are validated more consistently, stored values are escaped in the appropriate output context and unsafe URL schemes are rejected.
Legacy CSS values and image filenames are also validated before being used in generated styles.
Image uploads receive additional protections including content detection, file-size limits, image-dimension checks and generated server-side filenames.
Upgrade and migration routines remain deliberately conservative. Existing user data takes priority, and migration operations are designed to be non-destructive and repeatable.
Improved Multisite Support
Menu 1.3.0 improves the way plugin-owned files are handled in multisite environments.
Persistent data, disposable cache files and uploaded menu images are kept more clearly separated, helping different Geeklog sites remain isolated even when they share the same application code.
This is particularly useful for administrators running several Geeklog sites from one installation.
One Codebase Across Supported Geeklog Versions
Menu 1.3.0 deliberately keeps a single shared source tree across its supported Geeklog and PHP versions.
There is no separate edition for older and newer Geeklog installations.
Small compatibility helpers and runtime capability checks are preferred so that improvements made to the plugin benefit the whole supported range.
Automated tests run against both PHP 5.6 and PHP 8.1, while the administration and rendering paths have also been exercised on Geeklog 2.1.1 and 2.2.2 during development.
Download Menu 1.3.0
The source code and an installable archive are available from the Geeklog Plugins repository on GitHub:
https://github.com/Geeklog-Plugins/menu
If you are already using the Menu plugin, Menu 1.3.0 is intended as the next version to install and use.
Install It and Share Your Feedback
As with any substantial update, feedback from different Geeklog configurations remains valuable.
If you use Menu on your site, pay particular attention to:
- menu and submenu creation;
- element editing;
- parent selection;
- Display After ordering;
- drag-and-drop ordering;
- anonymous and logged-in permissions;
- menu activation and deactivation;
- menu cloning;
- menu and element deletion;
- custom colors and images;
- responsive legacy menus;
- upgrades from an existing Menu 1.2.x installation;
- integration with your current Geeklog theme.
Report Issues on GitHub
If you encounter a bug, regression, compatibility issue or unexpected behavior, please report it directly through the GitHub issue tracker:
https://github.com/Geeklog-Plugins/menu/issues
A useful report can be very simple. If possible, include your Geeklog version, PHP version, browser when relevant, the steps required to reproduce the issue and any PHP or JavaScript error messages.
Reports from real installations help identify situations that automated tests cannot always reproduce.
Preparing Menu for the Next Generation of Geeklog
Menu 1.3.0 is not intended to reinvent navigation.
Its purpose is to preserve what already works, strengthen the foundations and provide a cleaner separation between menu content and presentation.
This makes the plugin easier to maintain today and gives theme developers more freedom for tomorrow.
It is also part of a broader effort to keep the Geeklog ecosystem practical for existing installations while making it easier to evolve toward modern themes, integrations and development practices.
Menu 1.3.0 is available now. Download the installable archive from GitHub, update your Geeklog installation and report any issue you encounter.